Python3,在开发阶段被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0在设计的时候就没有考虑向下兼容。许多针对早期Python版本设计的程序都无法在Python 3.0上正常运行。为了照顾现有程序,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移。基于早期Python版本而能正常运行于Python 2.6并无警告的程序可以通过一个2 to 3的转换工具无缝迁移到Python 3.0。
开始阅读python历史
Python的创始人吉多·范罗苏姆,在1982年至1995年间,参与了荷兰数学和计算机科学研究学会多个项目的工作[38]。1989年的圣诞节期间,他决心开发一个新的脚本解释编程,作为ABC语言的继承者,并且用它替代Unix shell和C语言来进行系统管理[20],担负与Amoeba操作系统[39]之间的交互操作并进行异常处理[12]。他是BBC电视剧《Monty Python的飞行马戏团》的爱好者,所以选取了Python作为这个编程语言的名字[40]。范罗苏姆作为Python的主要开发者,独自担负这个项目的发展决策者职责,直到2018年7月12日,他宣布从终身仁慈独裁者(BDFL)的职位上“永久休假”[41][42]。他在2019年1月至11月参与了第一届五人掌控委员会继续领导项目发展[43][44]。
在1991年2月,范罗苏姆在alt.sources上发布了最初代码(标记为版本0.9.0)[1],这时就已经存在了带继承的类、异常处理、函数和核心类型list
、dict
、str
等。在这个最初发行中就有了从Modula-3引进的模块系统[45],和异常处理机制[12]。在1994年1月,Python达到了版本1.0[46],其主要新特征是由Amrit Prem提供的函数式编程工具lambda、
map、
filter和
reduce[47]。受Modula-3启发,Python 1.1介入了缺省参数值,Python 1.3介入了关键字参数。Python 1.4介入了对复数的内建支持,还包含了采取名字修饰的一种基本形式的数据隐藏[48]。
在2000年10月,Python 2.0发布,它介入了列表推导式,这是从函数式编程语言Haskell中引进的;它支持了Unicode,还向垃圾回收系统增加了环检测算法[49]。Python 2.1支持了静态嵌套作用域[50]。Python 2.2进行了重大革新,将Python的类型(用C语言写成)和类(用Python写成)统一入一个层级,使得Python的对象模型成为纯粹而一致的对象模型[51];还介入了迭代器[52],受CLU和Icon启发的生成器[53],和描述器协议[54]。Python 2.3介入了从Dylan引进的方法解析次序[18]。Python 2.4介入了集合类型,和函数修饰器[55]。Python 2.5介入了with
语句[56],并在官方实现中介入了抽象语法树[57]。
在2008年12月,Python 3.0发布,它对语言做了较大修订而不能完全后向兼容[58]。Python 3发行包括了2to3
实用工具,它(至少部分的)自动将Python 2代码转换成Python 3代码[59]。Python 3.4介入了异步I/O模块[60]。Python 3.5介入了类型提示[61],和采用async/await语法的协程[62]。Python 3.8介入了赋值表达式[63][64]。Python 3.9介入了内建的泛化别名类型[65],并在官方实现中介入了新的语法解析器[66]。Python 3.10介入了结构式模式匹配[67],和内建的联合类型[68]。Python 3.11对官方实现进行了优化提速[69]。
Python 2.7的产品寿命结束日期最初设定为2015年,由于大量现存代码不能移植到Python 3,而延期支持至2020年[70]。随着Python 2的产品寿命结束,2022年3月14日发布的macOS 12.3已经彻底移除了Python 2[71]。当前只有Python 3的稳定版本3.10、3.11和预览版本3.12正在被完全支持,但仍提供对3.7、3.8和3.9版本的安全性修正[72]。
在2022年12月,活跃的Python核心开发者,选举Pablo Galindo Salgado、Gregory P. Smith、Emily Morehouse、Brett Cannon和Thomas Wouters,为2023年度“掌控委员会”的五位成员来领导这个项目[73]。
Python的设计理念是“优雅”、“明确”、“简单”,它的一些重要准被合称为“Python之禅”。在Python解释器内运行
import this
可以获得完整的列表,下面举出其中首要:
重要的数据科学用第三方软件库有:
重要的人工智能机器学习框架有:
其他种类的库
目录