python2與python3之間的主要區別
參考知乎:劉志軍,關於《python 2 和 python 3 有哪些主要區別?》的回答
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...