Python2 与 Python3 语法及性能对比

Python 2.x 在过去超过十五年的时间里一直是最受欢迎的版本。但现在,越来越多的人正在转向 Python 3.x。Python3 比 Python2 好得多,并且带来了许多附加功能。此外,Python 2.x 今年即将变得过时。因此,从现在开始,我们建议大家开始使用 Python 3.x。

还在纠结吗?

想过是什么将两者区分开来的吗?让我们通过下面的内容来一探究竟。

首先,让我们通过这张图片快速对比一下,这会让你对预期的差异有大致的了解。

!image

打印语句
Python 2.7: 在此版本中,额外的括号对不是强制性的。

Python


CODEBLOCK_bffa21c4

Python 3.x: 在此版本中,必须使用额外的括号对。

Python3


CODEBLOCK_260e2ab2

整数除法
Python 2.7:

除法 (/) 操作的返回类型取决于其操作数。如果两个操作数都是 int 类型,则执行地板除并返回一个 int。如果任一操作数是 float,则执行经典除法并返回一个 float。还提供了 // 运算符用于执行地板除,无论操作数是什么类型。

Python


CODEBLOCK_be4b9994

Python 3.x:

除法 (/) 始终返回浮点数。要进行地板除并获得整数结果(丢弃任何小数结果),你需要使用 // 运算符。

Python3


CODEBLOCK_7c42bfce

输入函数
Python 2.7:

当你使用 input() 函数时,Python 会根据你的输入自动转换数据类型。

Python


CODEBLOCK_56eef1b5

raw_input 获取文本形式的输入(即键入的字符),但它不会尝试将其转换为其他任何东西;即它总是返回一个字符串。

Python


CODEBLOCK_3b433b15

Python 3.x

在 Python3 中,input 函数的行为类似于 Python 2.7 中的 raw_input,它总是返回字符串类型。

Python3


CODEBLOCK_1bc7caa3

四舍五入函数
Python 2.7: 输出结果始终为浮点数。

Python


CODEBLOCK_716c269b

Python 3.x: 返回结果具有 n 位精度。

Python3


CODEBLOCK_52be5f4e

列表推导式
Python 2.7: 请参考下面的例子,看看全局变量是如何变化的。

Python


CODEBLOCK_816603d7

Python 3.x: 现在不存在命名空间泄漏了。这个问题已经修复了。

Python3


CODEBLOCK_6a37b593

Range 函数
Python 2.7 :

它同时拥有 INLINECODEd30c0918 和 INLINECODEdbe27b62 函数。当你需要一次迭代一个对象时,使用 xrange,当你需要一个实际的列表时,使用 range 函数。xrange 通常更快且节省内存。

Python


CODEBLOCK_c9120e76

Python 3.x :

在这里,range 的功能等同于 Python 2.7 中的 xrange。xrange 在 Python 3.x 中不再可用。

Python3


CODEBLOCK_94071c8a

异常处理
Python 2.7 : 这与 Python 3.x 的语法不同。

Python


CODEBLOCK_6dcbcf5d

Python 3.x: 这里需要包含 ‘As‘ 关键字。

Python3


CODEBLOCK_66febf68

列表推导式
Python 2.7: 使用的括号比 Python 3.x 少。

Python


CODEBLOCK_9c0de565

Python 3.x: 这里需要额外的括号对。

Python3


CODEBLOCK_5bf6fdfb

next() 函数和 .next() 方法
Python 2.7: 这里同时使用 next() 和 .next()。

Python


CODEBLOCK_7ea18a35

Python 3.x: 这里只使用 next()。使用 .nex

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43645.html
点赞
0.00 平均评分 (0% 分数) - 0