新的Python程序建议使用Python3版本的语法,除非执行环境无法安装Python3或程序本身使用了不支持Python3的第三方库。Python3计划每年发布一个新的子版本,每次只增加两三种新语法。使用时,当然选择越新的Python版本越好,因为版本越老的代码越难维护。在维护老版本的代码时,需要了解各版本之间的主要差异。有...
一 Python版本
Python上线于1990年,经过30多年的发展,已成为最受欢迎的程序设计语言之一。自2004年起,Python使用率呈线性增长。Python2.0于2000年10月16日发布,其语言开发过程更加透明和包容。Python3于2008年12月3日发布,与Python2不完全兼容。为方便用户迁移特性到Python3,还提供了稳定版本Python2.7。以下是Python各个版本迭代的时间罗列:
Python的版本主要分为Python2.x和Python3.x两个系列。Python官方计划Python2只支持到2020年。Python3在设计时没有考虑向下兼容,导致许多针对早期Python版本设计的程序在Python3上无法正常执行。为照顾现有程序,Python 2.6作为过渡版本,使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移。Python 2.7作为2.x系列的最后一个主要版本,在2.x进入长期维护期之前发布。新的Python程序建议使用Python3版本的语法,除非执行环境无法安装Python3或程序本身使用了不支持Python3的第三方库。
Python3计划每年发布一个新的子版本,每次只增加两三种新语法。使用时,当然选择越新的Python版本越好,因为版本越老的代码越难维护。在维护老版本的代码时,需要了解各版本之间的主要差异。有时,通过代码的语法特点,可以大致判断其版本。
Python2与Python3的主要区别包括:
1. print函数:Python 2中的print语句被Python 3中的print()函数取代,Python 3中必须使用括号将需要输出的对象括起来。
2. 编码格式:Python2中是ASCII编码,需要更改字符集才能正常支持中文。Python3中字符串是Unicode (utf-8)编码,支持中文作为标识符。
3. 语法:Python2中不等于有两种写法 != 和 <>,Python3中去掉了 <>,只有 != 一种写法。Python2中反引号 ` ` 相当于 repr函数的作用,Python3中去掉了 ` ` 这种写法,只允许使用repr函数。
4. 数据类型:Python2中long是比int取值范围更大的整数,Python3中取消了long类型,int的取值范围扩大到之前的long类型范围。新增了bytes类型,对应于Python2版本的八位串。
5. 异常处理:Python2中捕获异常的语法为except exc, var,Python3中捕获异常的语法为except exc as var。Python2时代,所有类型的对象都可以被直接抛出,Python3时代,只有继承自BaseException的对象才可以被抛出。
6. 模块变化:模块进行了更名和移除,例如_configparser->configparser,_winreg->winreg等。2024-09-07