python2和python3的区别

宏观:
Python2:源码不标准,混乱,重复代码太多
Python3:统一,标准,去除重复代码

py2:默认是使用ASCII编码,所以说他们的编码默认是不支持中文的。
py3:默认是使用UTF-8的编码,所以他们默认是支持中文的。

python2是不支持中文编码的,而且python2 的变量命名只能用英文。
python3是支持中文的,而且python3的变量命名是能够使用中文的。

https://www.zhihu.com/tardis/bd/art/161380701?source_id=1001


1、不等于<>比较运算符,python3不辨认,pyhon2.7中!=和<>都能运转。
2、print函数的运用,python3有必要加括号,python2加不加都行。
3、py2的默许编码是ASCII,py3的默许编码是UTF-8。
4、py3字符串解码后会在内存里自动转换成Unicode,而py2不会。假如在文件头指定了解码编码,py2和py3都会按指定解码,所有系统都支撑Unicode,所以py3只需指定对了解码编码,在哪个系统上都能够正常显现,py2假如不是gbk编码的,解码后windous就会是乱码。
5、py2中有Unicode数据类型,py3中没有,字符串都是Unicode格局的str数据类型。
6、py2中bytes可所以二进制,也可所以str,py3中bytes只是十六进制表明的二进制。
7、py2中有long类型数据,py3中没有,py2中int最大值是-231~231-1超过在后面加L转换为long型。(直接运算会显现long型,由于2**31会先运算,是long型)
8、用户输入不同,py3中只有input()输出都是str和py2中的raw_input()一样,而py2中也有input(),输入字符串要带引号,数字输出相应的数字类型
9、Py2以前没有布尔型,0表明False,用1表明True;Python3把True和False界说成关键字,它们的值还是1和0,能够和数字运算。
10、py2中range()直接生成列表(量大占内存死机),py3中只有range()和py2中还有的xrang()都只生成一个生成器(一个计算方法,不占内存)。
11、py2的除法中不是浮点数则只返回商,py3除法返回值正常。
12、py3运转程序能够辨认相同目录下普通文件夹中的模块,py2只能辨认文件夹标识后的包中的模块。
13、创立类时,py2分为经典类和新式类,新式类就是承继object的类,经典类是没有承继的类,而py3中全部是新式类,默许承继object。在特点查找时,经典类查找方法为深度优先,新式类是广度优先。仅py3中有类的mro函数方法,输出承继父类的次序列表。
14、重用父类特点的super()运用方法不同,py2中super()需要输入本身类名和自身作为参数,而py3中不必输入参数,能够直接运用代替上一级父类。

你可能感兴趣的:(python)