1、print函数
python2:print语句 ( Python2 中若把 print 当函数使用,那么可以导入 future 模块 中的 print_function)
Python3:print函数,必须用括号括起来才能调用
2、输入函数
python2:raw_input 得到str, input 得到int
python3:input 得到str
3、使用super()
python2: 必须显示的在参数中写上基类
python3:直接无参数调用即可
4、1/2的结果
py:返回0
py3:返回0.5,没有了int和long的区别
5、编码
py2:默认编码ascii ,py2中使用中文,在头部引入coding声明
py3:默认编码utf-8
6、字符串
py2:unicode类型表示字符串序列,str类型表示字节序列
py3::str类型表示字符串序列,byte类型表示字节序列
7、True和False
py2:True 和 False 在 Python2 中是两个全局变量,可以为其赋值或者进行别的操作,初始数值分别为1和0,虽然修改是违背了python设计的原则,但是确实可以更改
py3:修正了这个变量,让True或False不可变
8、迭代器
py2:当中许多返回列表的方法,如range,字典对象的 dict.keys()、dict.values() 方法, map、filter、zip;并且迭代器必须实现next方法
py3:将返回列表的方法改为了返回迭代器对象,内置了__next__,不用特意去实现next
9、nonlocal
py2:没有办法在嵌套函数中将变量声明为一个非局部变量,只能在函数中声明全局变量
py3:nonlocal方法实现了,即在内部嵌套函数中用关键字nonlocal修饰局部变量,可修改这个局部变量
如:
def func():
c = 1
def foo():
c = 12
foo()
print(c)
func() #1
def func():
c = 1
def foo():
nonlocal c
c = 12
foo()
print(c)
func() # 12
10、其他
https://www.cnblogs.com/hanggegege/p/5840005.html