作为一个py3土著,并不是很关心这个问题,但是总有人隔三差五问这个问题,还是捋了一下。
这里列出几个主要区别:
1、最常见的人尽皆知的print()函数
在py2中,print是一个语句,不带括号,也可以带括号。
在py3中,print是一个函数,必须带括号调用。
2、除法
# Python 2.7
3 / 2 = 1
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0
# Python 3
3 / 2 = 1.5
3 // 2 = 1
3 / 2.0 = 1.5
3 // 2.0 = 1.0
3、unicode
在py2中有ascii str(),单独的unicode(),但是没有bytes类型。
在py3中有了unicode string(utf-8),以及bytes和bytearray类型。
4、xrange()
在py3中range()代替了xrange(),xrange()被去掉。
5、rawinput()和input()
在py3中统一了input()方法,输出类型全部为str。
6、next()函数和.next()方法
在py3中提供了内置函数next()来获取迭代器元素,去掉了.next()方法。
7、异常处理的一个语法细节
在py3中,as关键字不能省。