首頁  >  文章  >  後端開發  >  一文告知選擇Python2和Python3的區別

一文告知選擇Python2和Python3的區別

Tomorin
Tomorin原創
2018-08-23 17:47:442723瀏覽

對於初學者來說,只知道python2和Python3是兩代版本,但並不知道兩代版本之間有哪些差別,本文就來介紹Python2和Python3的區別。

print不再是語句,而是函數,例如原來是print 'abc' 現在是print('abc')

但是python2.6 可以使用from __future__ import print_function 來實現相同功能:

#py2
print("hello")#等价print(“hello”)
#py3
print("hello")

在Python 3中,沒有舊式類,只有新式類,也就是說不用再像這樣class Foobar(object): pass 明確地子類化object
但最好還是加上. 主要區別在於old-style 是classtype 類型而new-style 是type類型

##原來1/2(兩個整數相除)結果是0,現在是0.5了

python 2.2 以上都可以使用from __future__ import division 實現改特性, 同時注意// 取代了之前的/ 運算
新的字串格式化方法format取代%錯誤, 從python2.6 開始已經在str和unicode中有該方法, 同時python3依然支援% 運算子

xrange重命名為range

同時更改的還有一系列內建函數及方法, 都會回傳迭代器物件, 而不是列表或元組, 例如filter, map, dict.items 等

 !=取代 339158810dc9bca774273eedd2205148 python2 也很少有人用 5a3ddfa6cc9ed93093918f64c0ff527d  所以不算什麼修改

long重命名為int

不完全對, python3 徹底廢棄了long int 雙整數實現的方法, 統一為int , 支持高精度整數運算.

except Exception, e變成except (Exception) as e
只有python2.5 及以下版本不支援該語法. python2.6 是支援的. 不算新東西

 exec變成函數
類似print() 的變化, 之前是語句.

* 主要是類別庫的變化, 組織結構變了些. 但功能沒變. urlparse - >  urllib.parse 這樣的變化

* 最核心的變化它沒有說, 對bytes 和原生UNICODE 字符串的支持, 刪除了unicode 對象, str 為原生unicode 字符串, bytes 替代了之前的str 這個是最核心的.



#

以上是一文告知選擇Python2和Python3的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn