作為一名老司機,羅列下幾個注意點,紀念下匆匆歲月。
- print 不再是語句,而是函數(shù)
print("Hello, World!")
大家第一印象,告誡著我們 3.x 不向下兼容。
整除的問題
還記得第一次發(fā)現(xiàn)1/3 == 0
的震驚嗎?Unicode 問題
還記得第一次見到亂碼時的困惑嗎? utf-8 一統(tǒng)天下指日可待。升級版 range
或者不希望新人再去區(qū)分 xrange 是什么了?
而且因為有了__contains__
所以可以
1 in range(3)
- raise exceptions
同樣需要一個括號
raise Exception("error")
- handing exceptions
現(xiàn)在需要 as 了
try:
raise Exception("error")
exception Exception as err:
print(err, "error")
for 循環(huán)控制 變量不再泄露進周圍作用域
取締了一個黑暗魔法input()
跟 range 一樣,吞并了 raw_input()items()
跟 range 一樣,吞并了 iteritems()
所以
d = {"a":"a", "b":"b"}
print([(v, k) for k, v in d.items()])
- 函數(shù)返回值
同 range 一樣,zip(), map(),filter() 不再返回 list 而是返回迭代對象。可以
print(list(range(3)))。
總之,舊時代一去不復返,新時代已來臨。