小編給大家分享一下python2.7和3.3兩個(gè)版本有什么區(qū)別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
專注于為中小企業(yè)提供做網(wǎng)站、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)朝陽免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
python2版本和python3版本的區(qū)別,兩者對比如下
1. Python3 對 Unicode 字符的原生支持。
Python2 中使用 ASCII 碼作為默認(rèn)編碼方式導(dǎo)致 string 有兩種類型 str 和 unicode,Python3 只
支持 unicode 的 string。Python2 和 Python3 字節(jié)和字符對應(yīng)關(guān)系為:
2. Python3 采用的是絕對路徑的方式進(jìn)行 import
Python2 中相對路徑的 import 會導(dǎo)致標(biāo)準(zhǔn)庫導(dǎo)入變得困難(想象一下,同一目錄下有 file.py,如
何同時(shí)導(dǎo)入這個(gè)文件和標(biāo)準(zhǔn)庫 file)。Python3 中這一點(diǎn)將被修改,如果還需要導(dǎo)入同一目錄的文件必
須使用絕對路徑,否則只能使用相關(guān)導(dǎo)入的方式來進(jìn)行導(dǎo)入。
3. Python2 中存在老式類和新式類的區(qū)別,Python3 統(tǒng)一采用新式類。新式類聲明要求繼承 object,
必須用新式類應(yīng)用多重繼承。
4. Python3 使用更加嚴(yán)格的縮進(jìn)。Python2 的縮進(jìn)機(jī)制中,1 個(gè) tab 和 8 個(gè) space 是等價(jià)的,所
以在縮進(jìn)中可以同時(shí)允許 tab 和 space 在代碼中共存。這種等價(jià)機(jī)制會導(dǎo)致部分 IDE 使用存在問題。
Python3 中 1 個(gè) tab 只能找另外一個(gè) tab 替代,因此 tab 和 space 共存會導(dǎo)致報(bào)錯(cuò):TabError:
inconsistent use of tabs and spaces in indentation.
廢棄類差異
1. print 語句被 Python3 廢棄,統(tǒng)一使用 print 函數(shù)
2. exec 語句被 python3 廢棄,統(tǒng)一使用 exec 函數(shù)
3. execfile 語句被 Python3 廢棄,推薦使用 exec(open("./filename").read())
4. 不相等操作符"<>"被 Python3 廢棄,統(tǒng)一使用"!="
5. long 整數(shù)類型被 Python3 廢棄,統(tǒng)一使用 int
6. xrange 函數(shù)被 Python3 廢棄,統(tǒng)一使用 range,Python3 中 range 的機(jī)制也進(jìn)行修改并提高
了大數(shù)據(jù)集生成效率
7. Python3 中這些方法再不再返回 list 對象:dictionary 關(guān)聯(lián)的 keys()、values()、items(),zip(),
map(),filter(),但是可以通過 list 強(qiáng)行轉(zhuǎn)換:
1. mydict={"a":1,"b":2,"c":3}
2. mydict.keys() #<built-in method keys of dict object at 0x000000000040B4C8>
3. list(mydict.keys()) #['a', 'c', 'b']
8. 迭代器 iterator 的 next()函數(shù)被 Python3 廢棄,統(tǒng)一使用 next(iterator)
9. raw_input 函數(shù)被 Python3 廢棄,統(tǒng)一使用 input 函數(shù)
10. 字典變量的 has_key 函數(shù)被 Python 廢棄,統(tǒng)一使用 in 關(guān)鍵詞
11. file 函數(shù)被 Python3 廢棄,統(tǒng)一使用 open 來處理文件,可以通過 io.IOBase 檢查文件類型
12. apply 函數(shù)被 Python3 廢棄
13. 異常 StandardError 被 Python3 廢棄,統(tǒng)一使用 Exception
修改類差異
1. 浮點(diǎn)數(shù)除法操作符“/”和“//”的區(qū)別
“ / ”:
Python2:若為兩個(gè)整形數(shù)進(jìn)行運(yùn)算,結(jié)果為整形,但若兩個(gè)數(shù)中有一個(gè)為浮點(diǎn)數(shù),則結(jié)果為
浮點(diǎn)數(shù);
Python3:為真除法,運(yùn)算結(jié)果不再根據(jù)參加運(yùn)算的數(shù)的類型。
“//”:
Python2:返回小于除法運(yùn)算結(jié)果的最大整數(shù);從類型上講,與"/"運(yùn)算符返回類型邏輯一致。
Python3:和 Python2 運(yùn)算結(jié)果一樣。
2. 異常拋出和捕捉機(jī)制區(qū)別
Python2
1. raise IOError, "file error" #拋出異常
2. except NameError, err: #捕捉異常
Python3
1. raise IOError("file error") #拋出異常
2. except NameError as err: #捕捉異常
3. for 循環(huán)中變量值區(qū)別
Python2,for 循環(huán)會修改外部相同名稱變量的值
1. i = 1
2. print ('comprehension: ', [i for i in range(5)])
3. print ('after: i =', i ) #i=4
Python3,for 循環(huán)不會修改外部相同名稱變量的值
1. i = 1
2. print ('comprehension: ', [i for i in range(5)])
3. print ('after: i =', i ) #i=1
以上是python2.7和3.3兩個(gè)版本有什么區(qū)別的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章題目:python2.7和3.3兩個(gè)版本有什么區(qū)別
路徑分享:http://chinadenli.net/article20/gpppco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、品牌網(wǎng)站設(shè)計(jì)、靜態(tài)網(wǎng)站、標(biāo)簽優(yōu)化、虛擬主機(jī)、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)