python2.7和python3.6的重要区别

你在这里

python2.7和python3.6的重要区别

一.打印语句print
python2.7:print “OK”
python3.6:print(“OK”)
二.脚本编码说明
python2.7中若要使用汉语字符串,则需要在文件头部加以下说明:
# -*- coding: utf-8 -*-
python3.6无需此说明。
三.除法
python2.7中除法运算符 / 采用“地板除法”,例如:
>>>3/2
1
python3.6中除法运算符 / 是真正意义的除法,例如:
>>> 3/2
1.5
python3.6中若需要地板除法,无论对于整数还是浮点数都使用运算符 // ,例如:
>>> 3//2
1
>>> 3.0//2
1.0
四.函数闭包
python3中若在内部函数中修改外部函数中的变量,则内部函数中的变量被理解为内部函数中的局部变量,而外部函数中的同名变量被屏蔽起来。如果的确需要修改外部函数中的变量,则需要在内部函数使用关键字nonlocal声明变量。
>>> def test4():
...     x = 5
...     def infun():
...         nonlocal x
...         x *= x
...         return x
...     return infun
>>> a=test()
>>> a()
25
python2.7中无此机制,要修改的外部函数变量存放在容器类型中,因容器类型不存放在栈里,因此不会被屏蔽。例如:
>>> def test4():
...     x = [6]
...     def infun():
...         x[0] *=x[0]
...         return x
...     return infun
>>> a=test()
>>> a()
[25]
五、重载模块

python2直接使用:reload(sys)

python3中必须先从imp模块中导入reload函数后才能使用:

from imp import reload 

reload(sys)

六、类型转换函数差别

python2 中可以用string.atoi(your_str),string.atof(your_str),但 在python3中会报错:module 'string' has no attribute 'atof'。
替换的方案是:

int(your_str)
float(your_str)
这个代码python2和python3都可以运行.
著作权归作者所有。商业转载请联系本站作者获得授权,非商业转载请注明出处 ZZKOOK

您可能感兴趣的文章

登录以发表评论

评论

我一定赞赞赞....

 
25
李豆豆的头像

博主真的好人

 
26
sweeter的头像

博主真的零差评

 
25
郑晶晶的头像