python2和python3應該學哪個(python3.6與python3.7的選擇)

 更新時間:2019年10月01日 12:12:04   投稿:mdxy-dxy   我要評論
許多剛入門 Python 的朋友都在糾結的的問題是:我應該選擇學習 python2 還是 python3,Python 3.7 已經發布了,目前Python的用戶,主要使用的版本 應該是 Python3.6 和 Python2.7 ,那么是不是該轉到 Python 3.7 呢

首先先說一下python2與python3的選擇

許多剛入門 Python 的朋友都在糾結的的問題是:我應該選擇學習 python2 還是 python3?

對此,回答是:果斷 Python3 !(推薦學習:Python視頻教程)

可是,還有許多小白朋友仍然猶豫:那為什么還是有人推薦我學習 Python2 呢?

其實,無外乎以下一些原因:

1. 無論是 Python 還是 Pip 的下載量,都是 2 比 3 多,可見 2 仍然是主流

錯!造成 2 的下載量比 3 多的原因很多,但其中很重要的一條是,絕大多數操作系統(Linux 發行版)默認安裝的仍然是 Python 2。人都是有惰性的,許多人懶得折騰就直接用了2 了。但是,2 在下降,3 在上升這是不爭的事實。擁抱未來才是王道啊。

2. Python 2 和 3 不兼容,學了 3 還得學 2

錯!Python 提供了許多輔助的庫,可以讓你分分鐘寫出兼容 3 和 2 的代碼,你要做的只是引入幾個包而已,幾乎不用修改代碼。實在萬不得已非得用 2,你有 3 的基礎,幾乎不需要什么額外的學習,也能立刻上手 2。

3. 許多庫還停留在 Python 2,Python 3 用不了

錯!說出這話的這位仁兄,你是有多久沒有關注 Python?太不了解行情了。

根據 py3readiness 的最新統計結果,Pip 上最流行的(下載量最高的)前 360 個庫,已經有345 個支持 Python 3 了

python3_readiness.png

其中,只剩下 15 個(大約 4%)庫暫時還不支持 Python 3。你究竟是有多執著,非要等到 100% 才肯用 3?

你的工作能有多特別?非得用2才能搞定?即使真遇到這樣的情況,使用 virtualenv, conda 這些成熟的工具,分分鐘在你的機器上另起一個 2 的環境,和 3 完美兼容,你還需要擔心什么?

擁抱 Python 3 吧!人生苦短,我用 Python 3。

選擇 Python3.6 還是 Python 3.7

Python 3.7 已經發布了,目前Python的用戶,主要使用的版本 應該是 Python3.6 和 Python2.7 ,那么是不是該轉到 Python 3.7 呢?

首先大家要知道Python 3.7 是對 Python 3.6 的升級。Python官方對 3.7 的新特性描述鏈接如下:

https://docs.python.org/3/whatsnew/3.7.html

我們最需要注意的是 相對于 3.6 來說, 3.7 在語法上幾乎是完全 兼容, 除了如下這一點:

Backwards incompatible syntax changes:
async and await are now reserved keywords.

這段話,指出了 3.7 的唯一不兼容 3.6 的地方就是 async 和 await 變成了Python語言中保留的關鍵字了。

什么意思?

就是 async 和 await 這兩個詞 就像 import, for, while 這些詞一樣, 是系統保留特殊用途的關鍵字。

也就是說在Python 3.7 里面你不能使用定義 變量、函數之類的 名字

比如,我像下面這樣定義變量和函數:

async = 1
def await():
  pass

使用Python3.6 運行,沒有問題, 而在Python 3.7 里面就會報如下錯誤

SyntaxError: invalid syntax

如何選擇?
所以,如果項目 目前使用的是 Python 3.6 ,而且項目又比較大的話,個人建議不用太著急轉到 3.7 上去。 因為不知道你的項目代碼和依賴的第三方庫的代碼是不是做過3.7的兼容性測試, 畢竟 3.7 剛剛出來不久。

比如,白月黑羽寫這篇文章的時間是2018年7月13號,我就發現 postgresql 數據庫的Python API 驅動庫, psycopg2的安裝在 Python 3.7 上就有問題。

3.7 的 pip 執行

pip install psycopg2-binary

安裝就會失敗,提示 Error: pg_config executable not found

而 3.6的pip安裝就沒有問題。

所以,我們最好等到3.7被普遍使用了,再轉過去。

現在要轉到Python3.7, 除非 有你們項目特別渴望使用的 Python3.7 里面的新特性 。 如果是那樣的話,一定要 做一個對老的代碼覆蓋比較充分的測試,防止上線運行的時候出現問題。

用Python2.7怎么辦呢?
而如果目前 項目使用的是 Python 2.7 運行,那 主要是 Python 2 和 Python 3 之間 的 遷移問題了, 語法差異有些大。

如果項目聲明周期比較長的話, 建議還是 要在合適的時候升級到 Python3。 因為畢竟Python2 在2020年官方就不再維護,到時候出現什么安全漏洞之類的問題,就比較麻煩了。 或者是 有好用的第三方庫, 這些庫可能沒有 Python2 的版本,那樣就更麻煩了。

如果決定吧項目從Python2 升級到 Python3, 目前可以先升級到Python3.6 , 因為業界目前對 3.6 的支持還是比較普遍的。 等以后 3.7 支持比較普遍后,再做升級不遲。

腳本之家小編補充:最近學習python看了很多python3的文章都是推薦用python3.6,大家一起動起來吧。

相關文章

  • 詳解python 注釋、變量、類型

    詳解python 注釋、變量、類型

    本文通過實例代碼較詳細的給大家介紹了python 注釋、變量、類型的相關操作及實現代碼,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-08-08
  • 50行代碼實現貪吃蛇(具體思路及代碼)

    50行代碼實現貪吃蛇(具體思路及代碼)

    在50行代碼內來實現一個貪吃蛇,具體實現代碼如下,感興趣的朋友可以參考下哈,希望可以幫助到你
    2013-04-04
  • 詳解Python裝飾器

    詳解Python裝飾器

    這篇文章主要介紹了Python裝飾器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Python求均值,方差,標準差的實例

    Python求均值,方差,標準差的實例

    今天小編就為大家分享一篇Python求均值,方差,標準差的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python中整數的緩存機制講解

    Python中整數的緩存機制講解

    今天小編就為大家分享一篇關于Python中整數的緩存機制講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • python實現網站微信登錄的示例代碼

    python實現網站微信登錄的示例代碼

    這篇文章主要介紹了python實現網站微信登錄的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Python中的tuple元組詳細介紹

    Python中的tuple元組詳細介紹

    這篇文章主要介紹了Python中的tuple元組詳細介紹,本文講解了Tuple 與 list 的相同之處、Tuple 不存在的方法、用 Tuple 的好處、Tuple 與 list 的轉換等內容,需要的朋友可以參考下
    2015-02-02
  • 用十張圖詳解TensorFlow數據讀取機制(附代碼)

    用十張圖詳解TensorFlow數據讀取機制(附代碼)

    這篇文章主要介紹了用十張圖詳解TensorFlow數據讀取機制(附代碼),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • 使用Python來編寫HTTP服務器的超級指南

    使用Python來編寫HTTP服務器的超級指南

    這篇文章主要介紹了使用Python來編寫HTTP服務器的超級指南,同時介紹了基于Python框架的web服務器的編寫方法,譯文從理論到實現講得都很生動詳細,十分推薦!需要的朋友可以參考下
    2016-02-02
  • Python數組定義方法

    Python數組定義方法

    這篇文章主要介紹了Python數組定義方法,結合實例形式分析了Python一維數組與二維數組的定義方法與相關注意事項,需要的朋友可以參考下
    2016-04-04

最新評論

润升娱乐