python2和python3的主要區別

2022-09-22 19:00:45 字數 763 閱讀 5402

作為一個py3土著,並不是很關心這個問題,但是總有人隔三差五問這個問題,還是捋了一下。

這裡列出幾個主要區別:

1、最常見的人盡皆知的print()函式

在py2中,print是一個語句,不帶括號,也可以帶括號。

在py3中,print是一個函式,必須帶括號呼叫。

2、除法

# python 2.7

3 / 2 = 1

3 // 2 = 1

3 / 2.0 = 1.5

3 // 2.0 = 1.0

# python 3

3 / 2 = 1.5

3 // 2 = 1

3 / 2.0 = 1.5

3 // 2.0 = 1.0

3、unicode

在py2中有ascii str(),單獨的unicode(),但是沒有bytes型別。

在py3中有了unicode string(utf-8),以及bytes和bytearray型別。

4、xrange()

在py3中range()代替了xrange(),xrange()被去掉。

5、rawinput()和input()

在py3中統一了input()方法,輸出型別全部為str。

6、next()函式和.next()方法

在py3中提供了內建函式next()來獲取迭代器元素,去掉了.next()方法。

7、異常處理的一個語法細節

在py3中,as關鍵字不能省。

python2與python3之間的主要區別

py2 print語句,語句就意味著可以直接跟要列印的東西,如果後面接的是一個元組物件,直接列印 py3 print函式,函式就以為這必須要加上括號才能呼叫,如果接元組物件,可以接收多個位置引數,並可以列印 如果希望在 python2 中 把 print 當函式使用,那麼可以匯入 future 模組...

python3和python2的區別

1 效能 py3 0執行 pystone benchmark的速度比py2 5慢30 。guido認為py3 0有極大的優化空間,在字串和整...

python2和python3的差異

python3對unicode字元的原生支援 python2中使用 ascii 碼作為預設編碼方式導致string有兩種型別str和unic...