Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种广泛使用的解释型、高级编程、通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。Python是ABC语言的后继者,也可以视之为一种使用传统中缀表达式(英语:M-expression)的LISP方言。Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。
与Scheme、Ruby、Perl、Tcl等动态类型编程语言一样,Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。
Python 解释器本身几乎可以在所有的操作系统中运行。Python的其中一个解释器CPython是用C语言编写的、是一个由社群驱动的自由软件,目前由Python软件基金会管理。
Python的创始人为吉多·范罗苏姆,当时他在阿姆斯特丹的CWI工作。1989年的圣诞节期间,吉多·范罗苏姆为了在打发时间,决心开发一个新的脚本解释编程,作为ABC语言的一种继承,担负同Amoeba操作系统(英语:Amoeba (operating system))的交互和异常处理。之所以选中Python作为编程的名字,是因为他是BBC电视剧——蒙提·派森的飞行马戏团的爱好者。Python是为了替代使用Unix shell和C语言进行系统管理而从ABC语言发展起来,而它的模块系统主要受到了Modula-3的影响,它还结合了C语言的最少争议特征。就范罗苏姆本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,他认为是非开放造成的。范罗苏姆决心在Python中避免这一错误,并获取了非常好的效果。
目前范罗苏姆仍然是Python的主要开发者,决定整个Python语言的发展方向。Python社群经常称呼他是终身仁慈独裁者(BDFL)。
Python 2.0于2000年10月16日发布,增加了实现完整的垃圾回收,并且支持Unicode。同时,整个开发过程更加透明,社群对开发进度的影响逐渐扩大。
Python 3.0于2008年12月3日发布,此版不完全兼容之前的Python源代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。
Python是多范式编程语言。完全支持面向对象编程和结构化编程,而它的很多特征支持函数式编程和面向切面编程(包括元编程和元对象(英语:Metaobject)(魔术方法))。Python是完全面向对象的语言,函数、模块、数值、字符串都是对象;并且完全支持继承、重载、派生、多重继承,有益于增强源代码的复用性。Python支持重载运算符,因此Python也支持泛型设计。Python对遵循Lisp传统的函数式编程提供了有限的支持,它提供了 filter
、map
、reduce
函数;列表推导、字典、集合和生成器表达式。标准库中有两个模块(functools和itertools)实现了从Haskell和Standard ML取来的函数式工具。
Python的设计哲学是“优雅”、“明确”、“简单”。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”,也因此它和拥有明显个人风格的其他语言很不一样。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法。这些准则被称为“Python之禅”。在Python解释器内运行import this
可以获得完整的列表,下面是其中首要:
Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。再加上因为Python属于动态类型语言,动态类型语言是在运行期间检查数据的类型,不得不保持描述变量值的实际类型标记,程序在每次操作变量时,需要执行数据依赖分支,而静态类型语言相对于动态类型语言,在声明变量时已经指定了数据类型和表示方法,根据这一原理导致Python相对于C、Visual Basic等静态类型语言来说运行速度较慢。不过,根据二八定律,大多数编程对速度要求不高。在某些对运行速度要求很高的情况,Python设计师可以使用JIT技术如PyPy,或者使用C/C++语言编写扩展模块。
Python本身被设计为可扩展的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩展模块。Python编译器本身也可以被集成到其它需要脚本语言的编程内。因此,有很多人把Python作为一种“胶水语言”使用。使用Python将其他语言编写的编程进行集成和封装。
Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。因为Python是动态语言,它不像其他的静态语言如C、Pascal那样需要书写声明语句。
Python开发者有意让违反了缩进规则的程序不能通过解释,以此来强迫程序员养成良好的编程习惯,也方便所有人查找和阅读。并且Python语言利用缩进表示语句块的开始和结束(Off-side规则),而非使用花括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的结束。缩进成为了语法的一部分。例如if
语句:
if age < 21: print("你不能買酒") #美國法律規定21歲以下的人不能購買酒 print("不過你能買口香糖")print("這句話處於if語句塊的外面")