一.打印语句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
... return infun
>>> a=test()
>>> a()
25
python2.7中无此机制,要修改的外部函数变量存放在容器类型中,因容器类型不存放在栈里,因此不会被屏蔽。例如:
>>> def test4():
... x = [6]
... def infun():
... x = [6]
... def infun():
... x[0] *=x[0]
... return x
... 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。
评论
我一定赞赞赞....
博主真的好人
博主真的零差评