教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

Python 2.x和Python 3.x版本有什么区别

更新时间:2019年07月15日16时19分 来源:传智播客 浏览次数:

Python发展到现在,经历了多个版本,大家可以在Python官网查看,网址是https://www.python.org/downloads/截至目前,仍然保留的版本主要是基于Python 2.x和Python 3.x。下面列举了Python的历史版本。
 
版本号 发布时间 拥有者 GPL兼容
0.9.0—1.2 1991—1995 CWI
1.3—1.5.2 1995—1999 CNRI
1.6 2000 CNRI
2.0 2000 Beopen.com
2.1 2001 CNRI
2.01 2001/6/22 PSF
2.2——2.7.11 2001-2015 PSF
2.7.12 2016.06 PSF
2.7.13 2016.12 PSF
3.x 2008-至今 PSF
 
 
Python 2.x和Python 3.x版本区别
 
和Python 2.x版本相比,Python 3.x版本在语句输出、编码、运算和异常等方面做出了一些调整,具体如下。
 
  1. print函数替代了print语句
在Python2x中,输出数据使用的是print语句。但是在Python 3.x中,print语句没有了,取而代之的是print函数。示例代码如下
 
Python 2.X
 
>>> print(3, 4)
(3, 4)

 
 
Python 3.X
 
>>> print(3, 4)
3 4

 
  1. Python3x默认使用UTF-8编码
Python 2.0中有ASCII Str()类型,Unicode()是单独的,不是byte类型。在 Python 3.x版本
的源代码中,默认使用的是UTF-8编码,从而可以很好地支持中文或其他非英文字符。例如,
输出一句中文,使用 Python 2.x和 Python 3.x的输出结果如下所示:
 
Python 2.X
> string demo = "我爱北京天安门”
>> string_demo
‘xe6x88x91xe7\x88xhb1)xe5\x8cx97\xe4xhaxacxe5\xa4xa9)xe5\xaex89xe9x97xa8’

 
Python 3.x
>> string_demo= "我爱北京天安门”
>> string_demo
‘我爱北京天安门’

 


python版本区别
  1. 除法运算
和其他语言相比,Python语言的除法非常高端,它的除法运算包含两个运算符,分别是和这两个运算符在Pyhon 2.x和Python 3.x中的使用如下所示。
 
  1. 运算符/
在Pyhon 2.x中,使用运算符/进行除法运算的方式和Java、C语言相似,整数相除的结个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。但是,在Python3x中运算符进行除法运算,整数之间的相除,结果也会是浮点数。示例代码如下:
 
Python 2.X
 
>>> 1/2
0
>>> 1.0/2.0
0.5

 
Python 3.X
 
>>> 1/2
0.5

 
 
(2)运算符//
使用运算符进行的除法运算叫作floor除法,这种除法会对除法的结果自动进行一个floor操作。使用这种运算符进行的除法运算,在 Python 2.x和 Python 3.x中是一致的。示例代码如下:
 
Python 2.X
 
>>> -1//2
-1

 
 
Python 3.x
>>> -1//2
-1

 
需要注意的是,使用运算符//进行的除法是执行floor操作,即获取不大于结果值的最大整数(向下取整)。
 
4、异常
在 Python3x版本中,异常处理改变的地方主要如下。

(1)在 Python2x版本中,所有类型的对象都是直接被抛出的,但是在 Python 3.x版本中,只有继承自 BaseException的对象才可以被抛出。

(2)在 Python2x版本中,捕获异常的语法是”except Exception,var”。在 Python 3.x版本中,引入了as关键字,捕获异常的语法变更为“except Exception as var”

(3)在 Python2x版本中,处理异常使用“raise Exception,args";在 Python 3.x版本中,处理异常使用“raise Exception(args)”。

(4)Python 3.x版本中取消了异常类的序列行为和.message属性。

关于 Python 2.x版本中和 Python 3.x版本中处理异常的示例代码如下:
 
 
Python 2.x
 
>> >try:
… raise TypeError, "类型错误”
… except TypeError, err:
… print err.message

类型错误

 
 
Python 3.x
 
>> >try:
… raise TypeError("类型错误")
… except TypeError as err;
… print(err)

类型错误

 
 
5、八进制字面量表示
 
在 Python3x中,表示八进制字面量的方式只有一种,并且必须写成“0o1000”这样的方式,原来“01000的方式不能使用了。示例代码如下:
 
Python 2.x
>>>0o1000
512
>>>01000
512

 
Python 3.x
>>01000
File "<stdin>", line 1
01000
         ^
SyntaxError: invalid token
>>>0o1000
512

 
 
6、不等于运算符
Python2x的不等于运算符有两种写法:!=和<>,但是, Python3x中去掉了<>,只有!=种写法。示例代码如下:
 
Python 2.X
>>>1 != 2
True
>>> 1 <> 2
True

 
Python 3.x
>>> 1 != 2
True

>>> 1 <> 2
File "<stdin>", line 1
1<>2
SyntaxError: invalid syntax
>>> 
 

7、数据类型
Python中数据类型的改变如下。
  1. Python 3.x去除了long类型,现在只有一种整型int,但它的行为就像是 Python 2.X版本的long。
  1. Python 3.x新增了bytes类型,对应于Python 2.x版本的八位串,定义一个 bytes字面量的方法如下所示:
>>> bytes_demo = b'china’
>>> type(bytes_demo)
<type 'bytes’>

 
字符串对象和bytes对象可以使用.encode() (str→bytes)或者.decode() (byte→str)方法相互转化。示例代码如下。

>>>  string_demo = bytes demo decode ()
>>> string_demo
‘china’
>> > bytes_demo = string_demo.encode ()
>>> bytes_demo
b' chinat’

 
(3)python 3.x中,字典的keys(),itmes()和values()方法用返回视图代替列表,而2.x版本中的iterkeys()等函数都被废弃。同时去掉的还有has_keys()方法,用in代替。


推荐了解热门学科
区块链培训
软件测试培训


0 分享到:
和我们在线交谈!