Python2 還是 Python3 ?
py2.7是2.x系列的最後一個版本,已經停止開發,不再增加新功能。 2020年終止支援。
所有的最新的標準函式庫的更新改進,只會在3.x的版本裡出現。
Python3.0在2008年就發佈出來,而2.7作為2.X的最終版本並繼續維護。
Guido van Rossum的想法是不在對2.7版本進行向後相容。
Python3.x最顯著的改進是更好的Unicode支援,所有文字字串預設為Unicode。 Pyhton2.x中直接寫中文會報錯,Python3中可以直接寫中文了。
從開源專案看,支援py3的比例已經大大提高,知名的專案一般都支援py2.7和py3 。
py3比py2更規範統一、去掉了沒必要的關鍵字。
Python3.x還在持續改進中。
Python3.x的主要變化
編碼方式和效能
運行效率更快
預設原始檔編碼ASCII變成UTF-8,先前檔案前加入的coding=utf-8不再需要
針對unicode的處理有了明顯的改善,效率明顯提升
資料型別和基本運算
int和long進行了統一,統一為int
True、False、None都是關鍵字
必須以b'...'表示二進位數據,可以使用u'..'表示字串,不加u也表示字串
#移除<>不等號,使用「! =」表示不等號關係
調整除法符號'/'的用法,只傳回浮點數,要傳回整數要使用「//」
具有單一的str類型,其型別相當於2.x的unicode,3.x所有的字串都是unicode
range和dict的變化
在2.x中,range相比xrange會建立一個清單。常出現在for迴圈、字典、列表中,但3.x中xrange改名為range,在3.x中使用用xrange會觸發錯誤。同時range回傳的是可迭代物件而不再是列表形式,要想讓range的結果得到一個list資料必須要使用list(range(5))
dict.iterkeys(), dict.itervalues (), dict.iteritems()被keys() and values() and items()所取代他們的返回結果類似於集的可迭代對象,而不是鍵值對的列表。從而在不進行鍵和值條目複製的情況下就能對其執行set操作
迭代器
range在python3中返回顆迭代對象二不是列表,最大限度節約記憶體
zip(),map(),filter(),key(),value()傳回的皆是可迭代物件
以上是python2和python3哪個版本新的詳細內容。更多資訊請關注PHP中文網其他相關文章!