當前位置:成語大全網 - 新華字典 - python有什麽版本

python有什麽版本

目前python的主流版本有python2和python3。python2預計在2020年停止維護。初學者建議直接學習python3。

接下來說壹說Python2與Python3的差異。

基本語法差異

核心類差異

1、Python3對Unicode字符的原生支持

Python2中使用 ASCII 碼作為默認編碼方式導致string有兩種類型str和unicode,Python3只支持unicode的string。python2和python3字節和字符對應關系為:

2、Python3采用的是絕對路徑的方式進行import。

Python2中相對路徑的import會導致標準庫導入變得困難(想象壹下,同壹目錄下有file.py,如何同時導入這個文件和標準庫file)。Python3中這壹點將被修改,如果還需要導入同壹目錄的文件必須使用絕對路徑,否則只能使用相關導入的方式來進行導入。

3、Python2中存在老式類和新式類的區別,Python3統壹采用新式類。新式類聲明要求繼承object,必須用新式類應用多重繼承。

4、Python3使用更加嚴格的縮進。Python2的縮進機制中,1個tab和8個space是等價的,所以在縮進中可以同時允許tab和space在代碼中***存。這種等價機制會導致部分IDE使用存在問題。Python3中1個tab只能找另外壹個tab替代,因此tab和space***存會導致報錯:TabError: inconsistent use of tabs and spaces in indentation.

廢棄類差異

1、print語句被python3廢棄,統壹使用print函數

2、exec語句被python3廢棄,統壹使用exec函數

3、execfile語句被Python3廢棄,推薦使用exec(open("./filename").read())

4、不相等操作符"<>"被Python3廢棄,統壹使用"!="

5、long整數類型被Python3廢棄,統壹使用int

6、xrange函數被Python3廢棄,統壹使用range,Python3中range的機制也進行修改並提高了大數據集生成效率

7、Python3中這些方法再不再返回list對象:dictionary關聯的keys()、values()、items(),zip(),map(),filter(),但是可以通過list強行轉換

8、叠代器iterator的next()函數被Python3廢棄,統壹使用next(iterator)

9、raw_input函數被Python3廢棄,統壹使用input函數

10、字典變量的has_key函數被Python廢棄,統壹使用in關鍵詞

11、file函數被Python3廢棄,統壹使用open來處理文件,可以通過io.IOBase檢查文件類型

12、apply函數被Python3廢棄

13、異常StandardError 被Python3廢棄,統壹使用Exception