当前位置:   article > 正文

python2和python3的差异,超详细总结_公司代码好多都是python2

公司代码好多都是python2

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
  • 1
  • 2
  • 3
  • 4

python3:

>>> print "abc"
 会报错
>>> print("abc")
abc
  • 1
  • 2
  • 3
  • 4

4,输入差异

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

代码举例
python2:

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

请输入任意字符:as
报错

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

请输入任意字符:“as”

报错

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

请输入任意字符:'as'

'as'

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

请输入任意字符:as

'as'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

python3:

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

请输入任意字符:ad

'ad'

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

请输入任意字符:‘ad’

'‘ad’'

>>> raw_input("请输入任意字符:")
报错
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

#即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'>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

pyhton3:
python3:

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

>>> c=99999999999999999999999999999999999999999999999
>>> print(type(c))
<class 'int'>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

python3已废除了xrange

7,异常机制的区别

代码举例
python2

>>> try:
...    a = 1/0
... except Exception,e:
...    print e
  • 1
  • 2
  • 3
  • 4

python3

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

python3:

>>> True = 2
报错

>>> False = 4
报错
  • 1
  • 2
  • 3
  • 4
  • 5

10,模块导入的区别

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

11,字符串的区别

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/44966
推荐阅读
相关标签
  

闽ICP备14008679号