理论教育 Python2.x和3.x版本差异解析

Python2.x和3.x版本差异解析

时间:2023-10-28 理论教育 版权反馈
【摘要】:Python的3.0版本,常被称为Python 3000,或简称Py3k。许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。为了照顾现有程序,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。大多数第三方库都正在努力地相容Python 3.0版本。Python 3.0的变化主要在以下几个方面。Python 2.6与Python 2.7部分地支持这种形式的print语法。

Python2.x和3.x版本差异解析

本书所有示例代码基本遵循Python 3.x的语法。Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。为了照顾现有程序,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。本书建议新建Python程序使用Python 3.0版本的语法。除非执行环境无法安装Python 3.0或者程式本身使用了不支持Python 3.0的第三方库。目前不支持Python 3.0的第三方库有Twisted,py2exe,PIL等。大多数第三方库都正在努力地相容Python 3.0版本。即使无法立即使用Python 3.0,也建议编写相容Python 3.0版本的程式,然后使用Python 2.6或Python 2.7来执行。

Python 3.0的变化主要在以下几个方面。

print函数

print语句没有了,取而代之的是print()函数。Python 2.6与Python 2.7部分地支持这种形式的print语法。在Python 2.6与Python 2.7里面,以下三种形式是等价的:

然而,Python 2.6实际已经支持新的print()语法:

Unicode(www.daowen.com)

Python 2有ASCII str()类型,unicode()是单独的,不是byte类型。现在,在Python 3,我们最终有了Unicode(utf-8)字符串,以及一个字节类:byte和bytearrays。

由于Python 3.x源码文件默认使用utf-8编码,这就使得以下代码是合法的:

Python 2.x

Python 3.x

上述仅仅列举了两个方面的差异,考虑到初学者对面向对象编程的概念尚未接触到,诸如异常、八进制变量表示、不等运算符,很多2.x的模块名称在3.x上已被新的名字代替,数据类型等都有了变更,这些内容不在本章全面介绍。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈