1.print
- print語句沒有了,取而代之的是print()函數(shù)。
python2 print "fish"
python3 print("fish")
2.Unicode
python2默認(rèn)是 ASCII str() 類型,python3默認(rèn)Unicode類型即utf-8
python2中
>>> str = "我愛北京天安門"
>>> str
'\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8'
>>> str = u"我愛北京天安門"
>>> str
u'\u6211\u7231\u5317\u4eac\u5929\u5b89\u95e8'
python3中
>>> str = "我愛北京天安門"
>>> str
'我愛北京天安門'
3.除法運(yùn)算
python2中的除法
>>> 1 / 2
0
>>> 1.0 / 2.0
0.5
python3中的除法
>>> 1/2
0.5
4.異常
在 Python 3 中處理異常也輕微的改變了,在 Python 3 中我們現(xiàn)在使用 as 作為關(guān)鍵詞。
捕獲異常的語法由 except exc, var 改為 except exc as var。
使用語法except (exc1, exc2) as var可以同時(shí)捕獲多種類別的異常。 Python 2.6已經(jīng)支持這兩種語法。
- 在2.x時(shí)代,所有類型的對象都是可以被直接拋出的,在3.x時(shí)代,只有繼承自BaseException的對象才可以被拋出。
- 2.x raise語句使用逗號將拋出對象類型和參數(shù)分開,3.x取消了這種奇葩的寫法,直接調(diào)用構(gòu)造函數(shù)拋出對象即可。
在2.x時(shí)代,異常在代碼中除了表示程序錯(cuò)誤,還經(jīng)常做一些普通控制結(jié)構(gòu)應(yīng)該做的事情,在3.x中可以看出,設(shè)計(jì)者讓異常變的更加專一,只有在錯(cuò)誤發(fā)生的情況才能去用異常捕獲語句來處理。
5. xrange
python3中由range代替了xrange,在三中xrange會報(bào)錯(cuò)。
6.數(shù)據(jù)類型
python3去除了long類型,現(xiàn)在只有一種整型——int。
7.input
python3中input輸入的數(shù)據(jù),統(tǒng)統(tǒng)都是字符串型,python2中輸入的數(shù)據(jù)是什么類型,該數(shù)據(jù)就是什么類型。python2中的raw_input同python3中的input類似。
8.性能方面
python2的性能要比python3高30%左右。
有疏漏的地方大家發(fā)消息,我會進(jìn)行修改。Thank you!