Python2 还是 Python3?

py3 因为很多的库在 2 上不更新了,部分 2 的语法在 3 上面有问题现在也都能轻松点找到解决办法。我就是用 py2 上在 tf 教程源码在 py3 上跑出错就去查查改掉就是了。所以必须是 Python3。


静默繁星,发表于 2019-3-15 14:11:02

当然是用 python3 了,Python3 对 Unicode 字符的原生支持

Python2 中使用 ASCII 码作为默认编码方式导致 string 有两种类型 str 和 unicode,Python3 只支持 unicode 的 string。python2 和 python3 字节和字符对应关系为:

img

Python3 采用的是绝对路径的方式进行 import。

Python2 中相对路径的 import 会导致标准库导入变得困难(想象一下,同一目录下有 file.py,如何同时导入这个文件和标准库 file)。Python3 中这一点将被修改,如果还需要导入同一目录的文件必须使用绝对路径,否则只能使用相关导入的方式来进行导入。

Python2 中存在老式类和新式类的区别,Python3 统一采用新式类。新式类声明要求继承 object,必须用新式类应用多重继承。

Python3 使用更加严格的缩进。Python2 的缩进机制中,1 个 tab 和 8 个 space 是等价的,所以在缩进中可以同时允许 tab 和 space 在代码中共存。这种等价机制会导致部分 IDE 使用存在问题。Python3 中 1 个 tab 只能找另外一个 tab 替代,因此 tab 和 space 共存会导致报错:TabError: inconsistent use of tabs and spaces in indentation.


kdongyi,发表于 2018-7-3 17:04:00

装个 anaconda 管理环境就好,Py2 和 Py3 都能用。
楼上说 Py2 的资源不多,实际上我目前就发现 OpenCV 。OpenCV 3 已经支持了 Python3,但是 OpenCV 从 2 到 3 本身也挖了一些坑没填。
总体而言使用 Python3 是大趋势,再者 Python 2.7 往后的 2.x 版本好像也支持 Py3 的语法。


cloump 发表于 2018-8-15 15:48:40

python2.x 默认是 ascii 编码,python3.x 默认是 unicode 编码, 建议使用 3.x


Rivers,发表于 2018-8-22 08:29:06