python2和python3到底選誰?
為了提高生產力,用2.7為了迎接未來,用3.x不維護的東西多了去了,不維護不代表不能用。
等到需要用的框架支持3.x之後再轉,一點都不算晚。感覺可以跟你用途劃分,如果快速上手後端,Python2會是目前大部分公司選擇的,不過應該很快會被Python3代替,Python2到2020年就停止支持了。老項目不大會升級,只會維護,新業務會開Python3。
如果搞AI可以上Python3,目前大部分庫在停止支持Python2,3會更普遍。
也不必太糾結學哪個好,根據目前的處境去選吧,即使以後從2過度到3也不會耗費多少精力。主要根據你目前的處境去選就行了。
你已經沒有可選擇性了,放棄P2吧,p3才是王道!
沒得選,py2馬上淘汰,主流庫已經跟上py3了。就如xp系統和win10,你選什麼。瀉藥
月經帖啊,每過一段時間都會有這個問題。。。。。
Python2
大部分雲伺服器上現在默認的python版本還是2.
後期實踐上2轉3很方便的其實。區別在與各種包的支持,而包這個東西,還是看具體實施。
語法上從你初學的層面上其實沒什麼大區別
我的建議是學習2,然後在特定包的情況下,用用3,。反正就是環境變數切換的問題。
Python3整體的支持環境已經比較好了,而且Python2到2020年就停止維護啦。
請看倒計時:
Python 2.7 Countdown?pythonclock.org蛤蛤。
瀉藥
看你的目標是啥
如果你只是想用一次拉倒,那就用你順手的,同一種語言差別不應該很大
如果你是想生產用,嗯,那你就要小心一點了
breaking changes永遠是生產環境的大敵
從這一點上說,py這門語言生產用要有這個領悟
謝邀,跟上時代學新版本!1. print不再是語句,而是函數,比如原來是 print abc 現在是 print(abc)但是 python2.6+ 可以使用 from __future__ import print_function 來實現相同功能
2. 在Python 3中,沒有舊式類,只有新式類,也就是說不用再像這樣 class Foobar(object): pass 顯式地子類化object但是最好還是加上. 主要區別在於 old-style 是 classtype 類型而 new-style 是 type類型
3. 原來1/2(兩個整數相除)結果是0,現在是0.5了python 2.2+ 以上都可以使用 from __future__ import division 實現改特性, 同時注意 // 取代了之前的 / 運算
4. 新的字元串格式化方法format取代%錯誤, 從 python2.6+ 開始已經在str和unicode中有該方法, 同時 python3依然支持 % 算符
5. xrange重命名為range同時更改的還有一系列內置函數及方法, 都返回迭代器對象, 而不是列表或者 元組, 比如 filter, map, dict.items 等
6. !=取代 &< &> python2 也很少有人用 &< &> 所以不算什麼修改
7. long重命名為int不完全對, python3 徹底廢棄了 long+int 雙整數實現的方法, 統一為 int , 支持高精度整數運算
8. except Exception, e變成except (Exception) as e只有 python2.5 及以下版本不支持該語法. python2.6 是支持的. 不算新東西
9. exec變成函數類似 print() 的變化, 之前是語句.
簡單補充下*
主要是類庫的變化, 組織結構變了些. 但功能沒變. urlparse - &> urllib.parse 這樣的變化* 最核心的變化它沒有說, 對 bytes 和 原生 UNICODE 字元串的支持, 刪除了 unicode 對象, str 為原生 unicode 字元串, bytes 替代了之前的 str 這個是最核心的.* 其它... 貌似不怎麼重要了.
python學習資料,交流討論可加群:308754087
推薦閱讀: