Python2與Python3有何區別?選擇哪個合適?

老男孩IT教育機構發表於2021-04-28

  Python是一門非常不錯的程式語言,越來越多人都想要學習Python,不過在學習Python之前,很多人都疑惑Python有兩個版本,分別是Python2和Python3,它們之間有什麼區別?選擇哪個版本合適?

  python3 和 python2 是不相容的,而且差異比較大,python3是不向下相容的,但是絕大多陣列件和擴充套件都是基於python2的。

  Python2與Python3到底有何區別呢?

  1.效能

  Py3.0執行 pystone benchmark的速度比Py2.5慢30%。Guido認為Py3.0有極大的最佳化空間,在字串和整形操作上可以取得很好的最佳化結果。

  Py3.1效能比Py2.5慢15%,還有很大的提升空間。

  2.編碼

  Py3.X原始碼檔案預設使用utf-8編碼

  3. 語法

  1)去除了<>,全部改用!=

  2)去除``,全部改用repr()

  3)關鍵詞加入as 和with,還有True,False,None

  4)整型除法返回浮點數,要得到整型結果,請使用//

  5)加入nonlocal語句。使用noclocal x可以直接指派外圍(非全域性)變數

  6)去除print語句,加入print()函式實現相同的功能。同樣的還有 exec語句,已經改為exec()函式

  7)改變了順序運算子的行為,例如x

  8)輸入函式改變了,刪除了raw_input,用input代替:

  9)去除元組引數解包。不能def(a, (b, c)):pass這樣定義函式了

  10)新式的8進位制字變數,相應地修改了oct()函式。

  11)增加了 2進位制字面量和bin()函式

  12)擴充套件的可迭代解包。在Py3.X 裡,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求兩點:rest是list 物件和seq是可迭代的。

  13)新的super(),可以不再給super()傳引數,

  14)新的metaclass語法:

  15)支援class decorator。

  4. 字串和位元組串

  1)現在字串只有str一種型別,但它跟2.x版本的unicode幾乎一樣。

  2)關於位元組串,請參閱“資料型別”的第2條目

  5.資料型別

  1)Py3.X去除了long型別,現在只有一種整型——int,但它的行為就像2.X版本的long

  2)新增了bytes型別


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2770279/,如需轉載,請註明出處,否則將追究法律責任。

相關文章