• 隐藏侧边栏
  • 展开分类目录
  • 关注微信公众号
  • 我的GitHub
  • QQ:1753970025
Chen Jiehua

python2与python3的几点小区别 

Python 2在2020年元旦将正式停止官方支持(看这里),同时也有越来越多的 python 库不再支持 python 2,所以我们就来看看 pyhton 2 跟 python 3 有哪些区别,慢慢做个迁移~

__future__ 模块

通过 __future__ 模块,我们可以轻松使用 python 3 的特性,比如:

其它可以使用的特性主要有:

feature effect
generators Simple Generators
division Changing the Division Operator
absolute_import Imports: Multi-Line and Absolute/Relative
with_statement The “with” Statement
print_function Make print a function
unicode_literals
Bytes literals in Python 3000

print 函数

python 2 中 print 是表达式,python 3 中 print 是函数:

除法运算

编码问题

python 2 中默认的字符串类型是 ASCII,python 3 中默认的字符串类型是 Unicode:

python 2 也支持 Unicode:

xrange

python 2 中 range() 返回一个list,xrange() 返回一个 xrange 对象(迭代器);使用 xrange() 在计算大范围时可以更加节省内存;

python 3 中不存在 xrange(),只有 range() 也就是 python 2 中的 xrange()

抛出异常

异常处理

python 3 中 as 关键字时必须的,不可以省略

next

python 2 中同时存在 next().next(),而 python 3 仅保留 next()

for循环变量和全局命名空间

python 3 中 for 循环的变量不会泄漏到全局命名空间。

input()

python 2 中,输入有两个函数 input()raw_input();

python 3 中仅保留 input() ,功能同 raw_input() ,输入对象类型始终保存为 str;

码字很辛苦,转载请注明来自ChenJiehua《python2与python3的几点小区别》

评论