版本說(shuō)明
Python 3.0在設(shè)計(jì)的時(shí)候沒(méi)有考慮向較早版本相容
Python 2.6作為一個(gè)過(guò)渡版本,基本使用了Python 2.x的語(yǔ)法和庫(kù),同時(shí)考慮了向Python 3.0的遷移,允許使用部分Python 3.0的語(yǔ)法與函數(shù)。
除非為了使用舊的Python2.x項(xiàng)目代碼或只支持2.x的第三方庫(kù),否則不推薦使用2.x進(jìn)行編程
死人的print函數(shù)
Python 2.6與Python 2.7里面,以下三種形式是等價(jià)的:
print "fish"print ("fish") #注意print后面有個(gè)空格print("fish") #print()不能帶有任何其它參數(shù)
但python3.x只能使用后兩者,print語(yǔ)句被python3廢棄,只能使用print函數(shù)
Unicode
Python3中字符串是Unicode (utf-8)編碼,支持中文做標(biāo)識(shí)符。
python2中是ASCII編碼,需要更改字符集才能正常支持中文,所以在.py文件中會(huì)看到#-- coding: UTF-8 --。
#python3中>>> 中國(guó) = 'china' >>>print(中國(guó)) china#python2中>>> str = "我愛(ài)北京天安門">>> str'/xe6/x88/x91/xe7/x88/xb1/xe5/x8c/x97/xe4/xba/xac/xe5/xa4/xa9/xe5/xae/x89/xe9/x97/xa8'>>> str = u"我愛(ài)北京天安門">>> stru'/u6211/u7231/u5317/u4eac/u5929/u5b89/u95e8'
除法運(yùn)算
單斜杠/,Python2中整數(shù)相除得整數(shù),浮點(diǎn)小數(shù)相除得浮點(diǎn);Python3中結(jié)果總是浮點(diǎn)數(shù)。
#python3>>print(10/5)2.0
雙斜杠//,Python2和3相同,都是除法結(jié)果去掉小數(shù)部分
>>print(10//3)3
異常處理
Python2中try:...except ERR,e:...,在Python3中改為了try:...except ERR as e:...#Python3try: open('a.txt','r')except Exception as e: print(e) #這里也不要使用e.message
python 2中觸發(fā)異常可以用raise IOError, "file error"或raise IOError("file error")兩種方式。
python 3中觸發(fā)異常只能用raise IOError("file error")。
異常StandardError 被Python3廢棄,統(tǒng)一使用Exception
xrange和range
Python3中不再使用xrange方法,只有range方法
range在Python2中返回列表,而在Python3中返回range可迭代對(duì)象
a=range(10)print(a)print(list(a))
輸出
range(0, 10)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
八進(jìn)制字面量
Python3中只能使用0o...格式,對(duì)于01000格式將拋出錯(cuò)誤,而在Python2中兩種都能使用
>>> 01000 File "<stdin>", line 1 01000 ^SyntaxError: invalid token>>> 0o1000512
不等運(yùn)算符
在Python2中有兩個(gè)不等運(yùn)算符!=和<>,在Python3中去掉了<>,只有!=符號(hào)表示不等。
repr
在Python2中雙反引號(hào)``可以替代repr函數(shù),在Python3中去掉了雙反引號(hào)的表是方法,只能用repr方法
新聞熱點(diǎn)
疑難解答
圖片精選