Python 是一门特别的语言,它有 Python2 和 Python3 两个互不兼容却长期共存的版本。新手任选一支入门都行,不必理会它们的差异。随着码龄的增长,你将接触越来越多的模块,它们有的只支持 Python2 ,有的只支持 Python3 ,于是你不得不在同一台电脑中安装两个版本。好在 Windows 已经提供了解决方案:用 py -2
和 py -3
分别启动 Python2 和 Python3 。
对于一般项目,从 Python2 向 Python3 移植时需要注意以下几点:
- print 。 Python2 的 print 是一个关键字,而在 Python3 中它是一个函数,
print var -> print(var)
。今后将用另一种更标准也更优雅的方式来打印。 - input 。在 Python2 中有两个相似的函数,
row_input()
和input()
, Python 3 合二为一input()
。 - except 。 Python2 的异常写作
except Exception, instance
,而 Python 3 写作except Exception as instance
或者直接except Exception
。 - list 的 sort 方法。 Python2 的 sort 方法有三个参数 cmp 、 key 、 reverse , Python3 废弃了 cmp ,沿用代码会报错
TypeError: 'cmp' is an invalid keyword argument for this function
,需要导入functools.cmp_to_key
稍加修改,即list.sort(cmp=cmp, key=key, reverse=False) -> list.sort(key=functools.cmp_to_key(cmp), reverse=False)
。
被问及 Python 的未来以及什么时候会出 Python 4.0 , Python 之父 Guido Van Rossum 回答说:“我和 Python 核心开发团队的成员对 Python 4.0 没有兴趣,估计至少编号到 3.33 。”