python2與python3之間的主要區別

2021-08-27 10:58:49 字數 1715 閱讀 9470

python2與python3之間的主要區別

參考知乎:劉志軍,關於《python 2 和 python 3 有哪些主要區別?》的回答

print

py2:print語句,語句就意味著可以直接跟要列印的東西,如果後面接的是乙個元組物件,直接列印

py3:print函式,函式就以為這必須要加上括號才能呼叫,如果接元組物件,可以接收多個位置引數,並可以列印

如果希望在 python2 中 把 print 當函式使用,那麼可以匯入 future 模組 中的 print_function

下面有個示例:

print(「hello」, 「world」)

(『hello』, 『world』)

print(「hello」, 「world」)

hello world

print(「hello」, 「world」)

(『hello』, 『world』)

fromfutureimport print_function

print(「hello」, 「world」)

hello world

輸入函式

py2:input_raw()

py3:input()

在使用super()的不同

py2:必須顯示的在引數中寫上基類

py:直接無引數呼叫即可

1/2的結果

py2:返回0

py3:返回0.5,沒有了int和long的區別

編碼 py2:預設編碼ascii

py3:預設編碼utf-8

而且為了在py2中使用中文,在頭部引入coding宣告,不推薦使用

字串

py2:unicode型別表示字串序列,str型別表示位元組序列

py3::str型別表示字串序列,byte型別表示位元組序列

true和false

py2:true 和 false 在 python2 中是兩個全域性變數,可以為其賦值或者進行別的操作,初始數值分別為1和0,雖然修改是違背了python設計的原則,但是確實可以更改

py3:修正了這個變數,讓true或false不可變

迭代器

py2:當中許多返回列表的方法,如range,字典物件的 dict.keys()、dict.values() 方法, map、filter、zip;並且迭代器必須實現next方法

py3:將返回列表的方法改為了返回迭代器物件,內建了next,不用特意去實現next

nonlocal

py2:沒有辦法在巢狀函式中將變數宣告為乙個非區域性變數,只能在函式中宣告全域性變數

py3:nonlocal方法實現了,示例如下:

def func():

c = 1

def foo():

c = 12

foo()

print(c)

func() #1

def func():

c = 1

def foo():

nonlocal c

c = 12

foo()

print(c)

func() # 12

Python 2 與Python 3的區別

1.除號 與整除號 python 2中,是整除 python 3中,是常規除法,是整除 2.raw input與input python 2用raw input python 3用input 都表示輸入函式。3.print與print 以及逗號 python 2中,print my print na...

Python3 與 Python2 的不同

至於學習 python3 和 python2,我了解到的觀點是這樣的。1 現在很多的專案都還是在用 python2,學習 python2 還是有意義的 2 python2 在 python 的官方已經公布了在什麼什麼時間停止維護,所以對於新手來說,學習 python2 的價值不是很大,所以直接 py...

Python2 與Python3 的區別

1.print函式 py2中print是乙個語法結構,如 print value py3中print是乙個函式,如 print value 2.除法運算 py2中兩個整數除法得到的是0,要想得到浮點數結果,則被除數或除數二者要有乙個是浮點數才行。如 print 1 4 0 print 1 4.0.2...