對於初學者來說,只知道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依然支援% 運算子
同時更改的還有一系列內建函數及方法, 都會回傳迭代器物件, 而不是列表或元組, 例如filter, map, dict.items 等
!=取代 < > python2 也很少有人用 < > 所以不算什麼修改
不完全對, python3 徹底廢棄了long int 雙整數實現的方法, 統一為int , 支持高精度整數運算.
except Exception, e變成except (Exception) as e
只有python2.5 及以下版本不支援該語法. python2.6 是支援的. 不算新東西
exec變成函數
類似print() 的變化, 之前是語句.
* 最核心的變化它沒有說, 對bytes 和原生UNICODE 字符串的支持, 刪除了unicode 對象, str 為原生unicode 字符串, bytes 替代了之前的str 這個是最核心的.
#
以上是一文告知選擇Python2和Python3的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!