Python2.x 与 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 里面,以下三种形式是等价的:
print "fish"
print ("fish") #注意 print 后面有个空格
print("fish") #print()不能带有任何其它参数
然而,Python 2.6 实际已经支持新的 print()语法:
from __future__ import print_function
print("fish", "panda", sep=', ')
Unicode
Python 2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。
现在, 在 Python 3,我们最终有了 Unicode (utf-8) 字符串,以及一个字节类:byte 和
bytearrays。
由于 Python3.X 源码文件默认使用 utf-8 编码,这就使得以下代码是合法的:
>>> 中国 = 'china'
>>>print(中国)
china
Python 2.x
>>> str = "我爱北京天安门"