python2和python3的差异,超详细总结

python2与python3的区别

1,市场差异
python2:官方通知python2 2020开始不再维护,但企业很多代码都是python2,python2有很大的用户基群故会出现历史遗留问题,
需要很长时间的迁移过度到python3
python3:最新版本,但目前市场使用量不大

2,系统差异
python2:是centos 6-7系统默认支持的python版本
python3:是centos8系统默认支持的python版本

3,输出差异(代码举例)
python2:

>>> print "abc"
abc
>>> print("abc")
abc

python3:

>>> print "abc"
 会报错
>>> print("abc")
abc

4,输入差异

python 2: input 默认接收整形数据,str类型要用引号包起来,或用raw_input函数可以接收字符串
python 3: input 函数接收,获得输入类型为字符型

代码举例
python2:

>>> input("请输入任意字符:")

请输入任意字符:as
报错

>>> input("请输入任意字符")

请输入任意字符:“as”

报错

>>> input("请输入任意字符")

请输入任意字符:'as'

'as'

>>> raw_input("请输入任意字符")

请输入任意字符:as

'as'

python3:

>>> input("请输入任意字符:")

请输入任意字符:ad

'ad'

>>> input("请输入任意字符:")

请输入任意字符:‘ad’

'‘ad’'

>>> raw_input("请输入任意字符:")
报错

#即raw_input 在python3中已废除

5,数据类型与运算符差异

整除
python3: /表示真除
python2:整数相除只能获取商值,浮点型数据相除才能获得真实数据
整形数据
python3:只有int
python2:区分int和long

代码举例
pyhton2:

>>> a=999999999999
>>> print(type(a))
<type 'int'>

>>> c=99999999999999999999999999999
>>> print(type(c))
<type 'long'>

pyhton3:
python3:

 >>> a=999999
>>> print(type(a))
<class 'int'>

>>> c=99999999999999999999999999999999999999999999999
>>> print(type(c))
<class 'int'>

6,range和xrange的区别

代码举例
pyhton2:

>>> range(0,4)
[0, 1, 2, 3]

>>> list(xrange(1,4))
[1, 2, 3]

>>> xrange(0,4)
xrange(4)

pyhotn3:
>>> range(0,4)
range(0, 4)

>>> list(range(0,4))
[0, 1, 2, 3]

python3已废除了xrange

7,异常机制的区别

代码举例
python2

>>> try:
...    a = 1/0
... except Exception,e:
...    print e

python3

>>> try:
...    a = 1/0
... except Exception as e:
...    print(e)

8,字符编码的区别

pyhton2:默认编码是ascii码
只支持英文字母,数字,特殊字符,不支持中文含有中文需要做编码声明,用utf-8:
#--coding: utf-8-- #encoding=utf-8
pyhton3:默认编码是utf-8

9,布尔类型的区别

python2 True、False 是两个变量 可以更改
python3 True、False变成两个关键字 不能进行修改
代码举例
python2:

>>> True = 3
>>> print True
3

>>> False = 66
>>> print False
66

python3:

>>> True = 2
报错

>>> False = 4
报错

10,模块导入的区别

python2 默认是相对导入,自己创建模块时,必须要有__init__.py的文件
python3 无要求

11,字符串的区别

python2 unicode类型表示字符串序列,str类型表示字节序列
python3 str类型表示字符串序列,byte类型表示字节序列


版权声明:本文为qq_44936336原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。