Python 3 - 新功能
-
__future__ 模块
Python 3.x 引入了一些 Python 2 不兼容的关键字和函数,这些关键字和函数可以通过 Python 2 中内置的 __future__ 模块导入。如果您计划为您的代码提供 Python 3.x 支持,建议使用 __future__ 导入。例如,如果我们想要在 Python 2 中使用 Python 3.x 的整数除法行为,请添加以下 import 语句。 -
print 函数
Python 3 中最显着和最广为人知的变化是print函数被使用。现在必须将括号 () 与print 函数一起使用。它在 Python 2 中是可选的。默认情况下,print() 函数会在末尾插入一个新行。在 Python 2 中,可以通过在末尾放置 ',' 来抑制它。在 Python 3 中,"end =' '" 附加空格而不是换行符。 -
从键盘读取输入
Python 2 有两个版本的输入函数,input()和raw_input(). 如果接收到的数据包含在引号“”或“”中,则 input() 函数将接收到的数据视为字符串,否则将数据视为数字。在 Python 3 中,raw_input() 函数已弃用。此外,接收到的数据始终被视为字符串。 -
整数除法
在 Python 2 中,两个整数相除的结果四舍五入为最接近的整数。结果,3/2 将显示 1。为了获得浮点除法,分子或分母必须显式用作 float。因此,3.0/2 或 3/2.0 或 3.0/2.0 将导致 1.5Python 3 默认将 3 / 2 计算为 1.5,这对于新程序员来说更直观。 -
Unicode 表示
如果您想将字符串存储为 Unicode,Python 2 要求您用 au 标记它。默认情况下,Python 3 将字符串存储为 Unicode。我们有 Unicode (utf-8) 字符串和 2 个字节类:字节和字节数组。 -
xrange() 函数已删除
在 Python 2 中,range() 返回一个列表,而 xrange() 返回一个对象,该对象只会在需要时生成范围内的项目,从而节省内存。在 Python 3 中,range() 函数被删除,xrange() 已重命名为 range()。此外,range() 对象支持 Python 3.2 及更高版本中的切片。 -
引发异常
Python 2 接受两种表示法,即“旧”和“新”语法;如果我们没有将异常参数括在括号中,Python 3 会引发 SyntaxError。 -
异常中的参数
在 Python 3 中,异常参数应使用“as”关键字声明。 -
next() 函数和 .next() 方法
在 Python 2 中,允许将 next() 作为生成器对象的方法。在 Python 2 中,用于遍历生成器对象的 next() 函数也被接受。然而,在 Python 3 中,next(0 作为生成器方法已停止并引发AttributeError. -
2to3效用
与 Python 3 解释器一起,2to3.py 脚本通常安装在 tools/scripts 文件夹中。它读取 Python 2.x 源代码并应用一系列修复程序将其转换为有效的 Python 3.x 代码。