1.Python2和Python3的歷史背景
Python語言是在20世紀90年代誕生的,算算到現在已經是25歲的大叔級的語言了(跟它同壹個時代的還有壹個鼎鼎大名的java是在1995發行的, 紅了幾十年).
但是Python真正成名比java晚了很多年,其實也主要是應用領域的時代變遷.(猜測為啥,對了大數據的出現)
Python2是Python裏面壹個非常重要的版本,最早的版本是從2001的時候開始的,特別是從2006年開始py2.5的發布,python的功能逐漸強大起來,慢慢開始穩定下來,並且差不多1-2年左右遞增壹個版本,在08年左右開始慢慢的火起來了.
而Python3最早是從2008開始發布,但是py3.0的版本非常不穩定,所以社區更新的很快,差不多幾個月就更新壹次。所以壹開始的時候並沒有很多人用,只到2014春暖花開的時候python3.4 deliver了才開始慢慢穩定下來.
下面我們看壹個數據,這是Python社區聯和壹些網站在2014做的壹個調查,關於Python2/3,部分的結果如下:
1).97.51%用戶還在寫Python2的代碼
2).60%的用戶寫Python3的代碼
3).78.09%的用戶更多地寫Python2代碼
4).77.09%的用戶認可Python3
目前有壹些Linux裏的操作系統已經默認使用Python3:
1).Arch Linux (輕量級的Linux操作系統)
2).Ubuntu 16.04 (壹個桌面應用為主的Linux操作系統)
3).Fedora(Redhat桌面版本的延續)
2.Python2和Python3的主要區別:
目前最新的數據是,Python有兩個版本:壹個是2.7.12版,壹個是3.5.12版.
那麽Python2運行的好好的,為啥突然要出個Python3呢,其實是為了解決Python2裏面壹些歷史問題
第壹個是字符串的問題:
Python 2 中文本和二進制數據是壹個爛攤子,Python中的str 是代表二進制數據還是文本數據是有二義性,文字既能代表文本數據又能代表二進制數據這很麻煩,此類錯誤發生的時候,我們很難意識到。
第二個是對Unicode的支持
由於python是在1991年2月開源發布,這意味著它早於在1991年10月發布的第壹版 Unicode 標準。在接下來幾年中,晚於 Unicode 標準出現的語言都選擇在支持 Unicode 編碼的基礎上實現自己的 str 類型,這讓 Python 2 處於尷尬的境地。
目前是壹個python2/3***存的時代,這兩個版本是不兼容的。
python2現在只是做bug的修復,新硬件和操作系統兼容的相關維護工作。不會再有新的功能加入,python2只支持到2020年.
現在Python正在朝著3版本進化,在進化過程中,大量的針對2.x版本的代碼要修改後才能運行,所以目前有許多第三方庫還暫時無法在3.x上使用。
不過可以暢想壹下,也許再過幾年情況就會好很多,畢竟全世界有很多優秀的程序員正在把壹些庫從Py2往Py3上遷移.
3.選擇還是要根據自己的需求
若是企業的開發,要滿足工作的需求,尤其是依賴的軟件只能運行在Python2下,首選Python2.比如妳的開發需要依賴大量的第三方的庫(因為學Python非常大的壹個原因就是因為它有成千上萬的第三方包),像大量的數據分析,科學計算,還是選Python2吧.
如果妳是自己學習,研究的話,願意擁抱變化,那麽建議學Python3,因為它是未來的方向.
結論:
編程其實主要是對編程思想的理解和經驗的積累,千萬不要因為糾結學Py2還是Py3而浪費大量時間。
Py2和Py3裏面的思想基本是相通的,招式是類似的.當妳熟悉Python到壹定的程序的時候,會Py2的人學Py3只需要很短的時間。
所以不要再糾結細枝末節的語法差異,而耽誤了寶貴的學習時間