Python2和3的区别
Python2和3的区别
在Python版本中,2的版本发展到2.7就不在更新了,并且2.7的版本将被支持到2020年。
Python的2和3的区别在于:
1、编码问题:
在Python3中用的是Unicode编码方法。
而在Python2的版本中,用的是ASCII编码。
在ASCII编码中,中国的编码发展过程是从GB2312升级到GBK,再从GBK升级到GB18030。
ASCII编码中的GB2312->GBK->GB18030,他们都属于双字节字符集(DBCS)。
在Unicode编码中,解决了ASCII编码的混乱现象,为统一的编码规范。
在Unicode中,有utf-32、utf-16、utf-8。utf-8是可变长编码也是普遍使用的编码规范。
在Unicode中,所有的字节均为两个字节存储。一个字节占8位。
Unicode是用明文去对应相应的二进制数字。
在utf-8中,一个英文字符占一个字节,汉字占3个字节。
在utf-8中,是二进制数字对应二进制数字。
注意:
Python2的编码:可以将字节和字符一起处理。使其可以一起混用。
Python3的编码:将字节和字符分开处理了。使其不得混用
2、数字类型:
在Python3中,没有长整型long的概念,在Python2中有长整型long的概念。
在Python2中,当数字类型过长时,在数据尾部会有“L”的标识。
3、列表类型:
Python2中,list的sort()方法,可以将数字和字符串混在一起排序,并且数字在前。
Python3中,list的sort()方法,不可以将数字和字符串混用排序,会报TypeError类型错误。
在Python3中,将数字变成字符串格式,可以一起排序,按ASCII码表的数值进行排序。
4、运算符:
在Python2中,算数运算符 “ / ” 除法,是整除。
在Python3中,算数运算符 “ / ” 除法,结果有小数部分。
5、字节类型:
在Python2中,看到的字符串,是bytes类型 str == bytes。
在Python3中,看到的字符串,是unicode类型,str == unicod
6、数据类型:
不可变:整型、元组、字符串。
可变的:列表、字典、集合。
------ END ------