Python 2 與 Python 3 的差異對比

2021-09-17 00:21:28 字數 1733 閱讀 1717

這篇文章總結了一些與python2.6相比python3.0中的新特性.python3是乙個不向後相容的版本,有了很多的改變,這些對於python開發者來說是非常重要的,雖然多數人說python3真正流行起來還需要一段時間,但是python3確實有了很大的改進,現在也是時間來學習python3了。在真正理解python3中的一些變化之後,會發現其實python3的變化並沒有想象的那麼多,主要是修復了一些令人討厭的地方。

一般在每乙個發行版原始碼的misc/news檔案中詳細描述了每乙個細小的變化。

1.1 print是乙個函式

在python3中print是個函式,這意味著在使用的時候必須帶上小括號,並且它是帶有引數的。

old: print "the answer is", 2+2

new: print("the answer is", 2+2)

old: print x, # 末尾加上逗號阻止換行

new: print(x, end="") # 使用空格來代替新的一行

old: print >>sys.staerr, "fatal error"

new: print ("fatal error", file=sys.stderr)

old: print (x, y) # 列印出元組(x, y)

new: print((x, y)) # 同上,在python3中print(x, y)的結果是跟這不同的

在python3中還可以定義分隔符,使用引數sep來指定.

print("there are <", 2+5, ">possibilities", sep="")
上面**的結果如下:

there are <7> possibilities
注意:

1.2 使用views和iterators代替lists

d = 

d.keys() # dict_keys(['a'])

d.items() # dict_items([('a', 1)])

d.values() # dict_values([1])

k = d.keys(); k.sort() # attributeerror: 'dict_keys' object has no attribute 'sort'

1.3 比較符

python3簡化了比較符。

1.4 整型數

1.5 text vs. data 代替 unicode vs. 8-bit

python3中改變了二進位制資料和unicode字串。

2.1 新增語法

(a, *rest, b) = range(5)  

a # 0

rest # [1,2,3]

b # 4

t = ((1,1), (2,2))  

d =

d #

2.2 改變的語法

# old  

class c:

__metaclass__ = m

....

# new

class c(metaclass=m):

....

2.3 移除的語法

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...