你應該用 Python3.x 而非 Python2.x 的 20 個理由

pythondict發表於2020-05-12

最近小編在知乎上經常遇到這樣的問題:《現在開始學習python的話,是學習python2.x還是學習python3.x比較好?》,這也是許多初學者會遇到的問題,我們的答案是python 3.x. 為了幫助大家消除疑惑,在這裡統一告訴大家原因。

  1. Python3.1,io模組是使用Python語言實現的,比2.x快5~10倍

  2. Python3.1,str.format()支援自動編號:

python3.1,str.format()支援自動編號

  1. Python 3.1,64位版的int快了27%~55%

  2. Python 3.2,對全域性直譯器鎖(GIL)進行了重大升級,顯著改進了Python處理多執行緒的方式

  3. python3.3,用C語言重寫了decimal模組,比以前快12倍(資料操作)~120倍(高密度計算)。

  4. Python3.3,utf-8編碼快了2~4倍,utf-16編碼的encode最多快了10倍

  5. python3.4,優化pickle模組,效能提升好幾倍。

  6. python3.4,python直譯器的啟動快了30%

  7. Python3.4, 新增tracemalloc模組。一個除錯工具,用於追蹤、統計python的記憶體分配。

  8. Python3.4, 新增enum模組,提供列舉。好多人抱怨python沒有列舉,現在有了,雖然是以模組的方式實現的。

  9. Python 3.5,使非同步變得不那麼棘手,async和await關鍵字成為語言語法的一部分。

  10. Python3.5,新的語法:Type hints和typing模組。方便程式碼閱讀。

Python3.5,新的語法:Type hints和typing模組

  1. Python3.5,UTF-8、UTF-16、LATIN-1編碼的decode速度是以前的2~4倍。

  2. Python3.5,新增.hex()函式,可以直接把bytes型別轉為16進位制

python hex()

  1. python3.5, 新增os.scandir()函式,更快、更省記憶體的遍歷資料夾。在POSIX系統上比以前快35倍,在Windows系統上快720倍。os.walk()目前也在使用此函式。

  2. Python3.6, 用C語言實現asyncio.Future類和asyncio.Task類,asyncio程式的效能快了25%~30%

  3. Python3.6, glob模組的glob()函式和iglob()函式現在使用os.scandir()函式。快了3~6倍

  4. Python3.6,pathlib.Path模組的glob()函式現在使用os.scandir()函式。快了1.5~4倍

  5. Python3.6, 新增secrets模組,生成強隨機數。以前的random模組只能生成偽隨機數,官方推薦在涉及安全問題時不再使用random模組

  6. Python3.7,time模組新增6個可以訪問納秒的函式,如time.time_ns()、time.perf_counter_ns()等等。

我們的文章到此就結束啦,如果你希望我們今天的Python 教程,請持續關注我們,如果對你有幫助,麻煩在下面點一個贊/在看哦,有任何問題都可以在下方留言區留言,我們都會耐心解答的!


原文來自Python實用寶典你應該用Python3.x而非Python2.x的20個理由

​Python實用寶典 (pythondict.com)

不只是一個寶典

歡迎關注公眾號:Python實用寶典

本作品採用《CC 協議》,轉載必須註明作者和本文連結

Python實用寶典, pythondict.com

相關文章