python 2和python 3有什么区别?
来源: 阅读:1036 次 日期:2016-06-25 10:05:35
温馨提示: 小编为您整理了“python 2和python 3有什么区别?”,方便广大网友查阅!

到这个题目大家可能猜到了我接下来要讲些什么,呵呵,对了,那就是列出这两个不同版本间的却别!

搜索一下大家就会知道,python有两个主要的版本,python2 和 python3 ,但是python又不同于其他语言,向下兼容,python3是不向下兼容的,但是绝大多数组件和扩展都是基于python2的,下面就来总结一下python2和python3的区别。

1.性能

py3.0运行 pystone benchmark的速度比py2.5慢30%。guido认为py3.0有极大的优化空间,在字符串和整形操作上可以取得很好的优化结果。

py3.1性能比py2.5慢15%,还有很大的提升空间。

2.编码

py3.x源码文件默认使用utf-8编码,这就使得以下代码是合法的:

>>> 中国 = 'china'

>>>print(中国)

china

3. 语法

1)去除了<>,全部改用!=

2)去除``,全部改用repr()

3)关键词加入as 和with,还有true,false,none

4)整型除法返回浮点数,要得到整型结果,请使用//

5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量

6)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数

例如:

2.x: print the answer is, 2*2

3.x: print(the answer is, 2*2)

2.x: print x, # 使用逗号结尾禁止换行

3.x: print(x, end= ) # 使用空格代替换行

2.x: print # 输出新行

3.x: print() # 输出新行

2.x: print >>sys.stderr, fatal error

3.x: print(fatal error, file=sys.stderr)

2.x: print (x, y) # 输出repr((x, y))

3.x: print((x, y)) # 不同于print(x, y)!

7)改变了顺序操作符的行为,例如x

8)输入函数改变了,删除了raw_input,用input代替:

2.x:guess = int(raw_input('enter an integer : ')) # 读取键盘输入的方法

3.x:guess = int(input('enter an integer : '))

9)去除元组参数解包。不能def(a, (b, c)):pass这样定义函数了

10)新式的8进制字变量,相应地修改了oct()函数。

2.x的方式如下:

>>> 0666

438

>>> oct(438)

'0666'

3.x这样:

>>> 0666

syntaxerror: invalid token (

>>> 0o666

438

>>> oct(438)

'0o666'

11)增加了 2进制字面量和bin()函数

>>> bin(438)

'0b110110110'

>>> _438 = '0b110110110'

>>> _438

'0b110110110'

12)扩展的可迭代解包。在py3.x 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求两点:rest是list

对象和seq是可迭代的。

13)新的super(),可以不再给super()传参数,

>>> class c(object):

def __init__(self, a):

print('c', a)

>>> class d(c):

def __init(self, a):

super().__init__(a) # 无参数调用super()

>>> d(8)

c 8

<__main__.d object at 0x00d7ed90>

更多信息请查看网站运营
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
相关阅读网站运营
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map