這篇文章總結了一些與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...