首頁技術(shù)文章正文

Python 3.x和Python 2.x有哪些區(qū)別?

更新時間:2022-03-07 來源:黑馬程序員 瀏覽量:

Python 3.x不兼容Python 2.x,但這兩個系列在語法層面的差別不大。Python 3.x移除了部分混淆的表達方式,但大體語法與Python 2.x相似,Python 3.x的使用者可以輕松閱讀Python 2.x編寫的代碼。本節(jié)將列舉Python 3.x和Python 2.x的部分區(qū)別,以幫助大家了解它們之間的差異。

(1)編碼方式

Python 3.x默認采用UTF-8編碼,對中文和英文都有良好的支持;Python 2.x默認采用ASCII編碼,對中文支持不夠良好,為了防止因程序包含中文而報錯,一般在Python2.x文件首行將編碼格式設(shè)置為UTF-8,設(shè)置方式如下:

# -*-coding:utf-8 -*-
除需在程序首行添加以上代碼外,Python 2.x編寫的程序中需要使用decode()方法和encode()方法對接收和輸出的字符格式進行轉(zhuǎn)換。

(2) print 語句

Python 3.x中用print()函數(shù)取代了python 2.x中的print語句,兩者功能相同,格式不同。具體示例如下:

Python 2.x

>>> print 3,4
3 4

Python 3.x

>>>  print(3,4)
3 4

(3)除法運算

Python 3.x中兩個整數(shù)相除(使用運算符“/”)返回一個浮點數(shù),不再返回整數(shù);使用運算符“//”實現(xiàn)整除的用法一樣。具體示例如下:

Python 2.x

>>>1/2       #整數(shù)相除
0
>>>1.0/2.0    #浮點數(shù)相除
0.5

Python 3.x

>>> 1/2
0.5
>>> 1//2
0

(4)八進制表示

Python 3.x中只使用“0o”開頭以表示八進制,刪除了Python 2.x中使用“0”開頭的表示方法。

(5)比較行為

Python3.x只使用“!=”表示不等運算,刪除了Python 2.x中的“<>”表示方法。Python3.x中的<、<=、>、>=運算符被用于比較兩個不存在有意義順序的元素時不再返回布爾值,而是拋出異常。具體示例如下:

Python 2.x

>>>1 <'a'
Flase

Python 3.x

>>> 1 <'a'
Tracapack (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'

(5)整數(shù)類型

Python 3.x中的整型不再區(qū)分整型和長整型,只保留int類型,且int類型的長度只與計算機的內(nèi)存有關(guān),內(nèi)存足夠大,整數(shù)就能足夠長;同時sys.maxint常量也被刪除。

(7) 關(guān)鍵字

Python3.x中增加了關(guān)鍵字as、with、True、False、None。

(8) input()函數(shù)

Python 3.x中使用input()函數(shù)取代了raw_input()函數(shù)。

(9) range()函數(shù)

Python 3.x中使用list()函數(shù)對 range()函數(shù)的返回值進行轉(zhuǎn)換,以實現(xiàn)2.x中range()返回列表的功能。具體示例如下:

Python 2.x

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

Python3.x

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

(10)異常

Python3.x中使用as關(guān)鍵字標識異常信息。具體示例如下:

Python 2.x

>>> try:
...   raise TypeError,"類型錯誤"
…  except TypeError,err:
...    print err.message
...
類型錯誤

此外Python3.x中取消了異常類的序列行為和.message 屬性。本節(jié)只列舉了Pytbon版本的部分區(qū)別,更多內(nèi)容可參見Python 官網(wǎng)文檔。




猜你喜歡:

為什說Python語言對編程小白更友好?

遍歷Python字典的幾種方法

python字典操作:Python字典詳細教程

使用hist()繪制直方圖

黑馬程序員Python+大數(shù)據(jù)開發(fā)培訓

分享到:
在線咨詢 我要報名
和我們在線交談!