python3和python2區(qū)別有什么
python2版本和python3版本的區(qū)別,兩者對(duì)比如下
核心類(lèi)差異
1. Python3 對(duì) Unicode 字符的原生支持。
Python2 中使用 ASCII 碼作為默認(rèn)編碼方式導(dǎo)致 string 有兩種類(lèi)型 str 和 unicode,Python3 只
支持 unicode 的 string。Python2 和 Python3 字節(jié)和字符對(duì)應(yīng)關(guān)系為:
2. Python3 采用的是絕對(duì)路徑的方式進(jìn)行 import
Python2 中相對(duì)路徑的 import 會(huì)導(dǎo)致標(biāo)準(zhǔn)庫(kù)導(dǎo)入變得困難(想象一下,同一目錄下有 file.py,如
何同時(shí)導(dǎo)入這個(gè)文件和標(biāo)準(zhǔn)庫(kù) file)。Python3 中這一點(diǎn)將被修改,如果還需要導(dǎo)入同一目錄的文件必
須使用絕對(duì)路徑,否則只能使用相關(guān)導(dǎo)入的方式來(lái)進(jìn)行導(dǎo)入。
3. Python2 中存在老式類(lèi)和新式類(lèi)的區(qū)別,Python3 統(tǒng)一采用新式類(lèi)。新式類(lèi)聲明要求繼承 object,
必須用新式類(lèi)應(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ī)制會(huì)導(dǎo)致部分 IDE 使用存在問(wèn)題。
Python3 中 1 個(gè) tab 只能找另外一個(gè) tab 替代,因此 tab 和 space 共存會(huì)導(dǎo)致報(bào)錯(cuò):TabError:
inconsistent use of tabs and spaces in indentation.
python學(xué)習(xí)網(wǎng),免費(fèi)的python學(xué)習(xí)網(wǎng)站,歡迎在線學(xué)習(xí)!
廢棄類(lèi)差異
1. print 語(yǔ)句被 Python3 廢棄,統(tǒng)一使用 print 函數(shù)
2. exec 語(yǔ)句被 python3 廢棄,統(tǒng)一使用 exec 函數(shù)
3. execfile 語(yǔ)句被 Python3 廢棄,推薦使用 exec(open("./filename").read())
4. 不相等操作符"<>"被 Python3 廢棄,統(tǒng)一使用"!="
5. long 整數(shù)類(lèi)型被 Python3 廢棄,統(tǒng)一使用 int
6. xrange 函數(shù)被 Python3 廢棄,統(tǒng)一使用 range,Python3 中 range 的機(jī)制也進(jìn)行修改并提高
了大數(shù)據(jù)集生成效率
7. Python3 中這些方法再不再返回 list 對(duì)象:dictionary 關(guān)聯(lián)的 keys()、values()、items(),zip(),
map(),filter(),但是可以通過(guò) 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 來(lái)處理文件,可以通過(guò) io.IOBase 檢查文件類(lèi)型
12. apply 函數(shù)被 Python3 廢棄
13. 異常 StandardError 被 Python3 廢棄,統(tǒng)一使用 Exception
修改類(lèi)差異
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ù)的類(lèi)型。
“//”:
Python2:返回小于除法運(yùn)算結(jié)果的最大整數(shù);從類(lèi)型上講,與"/"運(yùn)算符返回類(lèi)型邏輯一致。
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)會(huì)修改外部相同名稱變量的值
1. i = 1
2. print ('comprehension: ', [i for i in range(5)])
3. print ('after: i =', i ) #i=4
Python3,for 循環(huán)不會(huì)修改外部相同名稱變量的值
1. i = 1
2. print ('comprehension: ', [i for i in range(5)])
3. print ('after: i =', i ) #i=1
4. round 函數(shù)返回值區(qū)別
Python2,round 函數(shù)返回 float 類(lèi)型值
1. isinstance(round(15.5),int) #True
Python3,round 函數(shù)返回 int 類(lèi)型值
1. isinstance(round(15.5),float) #True
5. 比較操作符區(qū)別
Python2 中任意兩個(gè)對(duì)象都可以比較
1. 11 < 'test' #True
Python3 中只有同一數(shù)據(jù)類(lèi)型的對(duì)象可以比較
1. 11 < 'test' # TypeError: unorderable types: int() < str()
python和python3有什么區(qū)別
print函數(shù)、整除符號(hào)、語(yǔ)法差異。1、print函數(shù):Python2中,print是一個(gè)語(yǔ)句,不需要括號(hào),Python3中,print是一個(gè)函數(shù),需要括號(hào)。2、整除符號(hào):Python2中,整除操作符是“\/”,Python3中,整除操作符是“\/\/”。3、語(yǔ)法差異:Python3引入了一些新的語(yǔ)法和關(guān)鍵字,與Python2不兼容。
初學(xué)者應(yīng)該學(xué)python2還是python3
Python有Python2和Python3,很多人都會(huì)糾結(jié)選擇哪個(gè)版本進(jìn)行學(xué)習(xí)?這兩個(gè)版本是不兼容的,而且差異比較大,需要多方面具體分析來(lái)決定。從基本設(shè)計(jì)上來(lái)說(shuō),Python3的目的就是沒(méi)有代碼兼容的包袱情況下進(jìn)行改進(jìn)了Python,相對(duì)于Python2來(lái)說(shuō),Python3有很多的改進(jìn),更加容易理解,也更加合理。而且從應(yīng)用的角度上...
(一) Python版本
Python3計(jì)劃每年發(fā)布一個(gè)新的子版本,每次只增加兩三種新語(yǔ)法。使用時(shí),當(dāng)然選擇越新的Python版本越好,因?yàn)榘姹驹嚼系拇a越難維護(hù)。在維護(hù)老版本的代碼時(shí),需要了解各版本之間的主要差異。有時(shí),通過(guò)代碼的語(yǔ)法特點(diǎn),可以大致判斷其版本。Python2與Python3的主要區(qū)別包括:1. print函數(shù):Python 2中的...
python3和python2差別為什么那么大
python2和python3的區(qū)別 如果你是一個(gè)初學(xué)者,或者你以前接觸過(guò)其他的編程語(yǔ)言,你可能不知道,在開(kāi)始學(xué)習(xí)python的時(shí)候都會(huì)遇到一個(gè)比較讓人很頭疼的問(wèn)題:版本問(wèn)題!!是學(xué)習(xí)python2 還是學(xué)習(xí) python3 ?這是非常讓人糾結(jié)的!搜索一下便會(huì)發(fā)現(xiàn)python3 和 python2 是不兼容的,而且差異比較大,到底學(xué)習(xí)...
Python 2 和 Python 3 有哪些主要區(qū)別
你應(yīng)該是剛接觸Python吧,建議直接學(xué)Python3.x 下面是Python2.x與3.x版本區(qū)別:Python的3.0版本,常被稱為Python 3000,或簡(jiǎn)稱Py3k。相對(duì)于Python的早期版本,這是一個(gè)較大的升級(jí)。為了不帶入過(guò)多的累贅,Python 3.0在設(shè)計(jì)的時(shí)候沒(méi)有考慮向下相容。許多針對(duì)早期Python版本設(shè)計(jì)的程式都無(wú)法在Python 3....
兩個(gè)python版本,怎么確定哪個(gè)是在用的
4).77.09%的用戶認(rèn)可Python3 目前有一些Linux里的操作系統(tǒng)已經(jīng)默認(rèn)使用Python3:1).Arch Linux (輕量級(jí)的Linux操作系統(tǒng))2).Ubuntu 16.04 (一個(gè)桌面應(yīng)用為主的Linux操作系統(tǒng))3).Fedora(Redhat桌面版本的延續(xù))2.Python2和Python3的主要區(qū)別:目前最新的數(shù)據(jù)是,Python有兩個(gè)版本:一個(gè)是2.7.12版,一...
python3和python2的區(qū)別
以下列舉了幾個(gè)重要的改變:1.編碼 Py3.X源碼文件默認(rèn)使用utf-8編碼,這就使得以下代碼是合法的:>>> 中國(guó) = '中國(guó)'>>> print(中國(guó)) 中國(guó)2.輸入函數(shù)改變了,刪除了raw_input()函數(shù),用input()函數(shù)代替:2.X:guess = int(raw_input('Enter an integer : ')) # 讀取鍵盤(pán)輸入的方法...
終于搞懂了python2和python3的encode(編碼)與decode(解碼)
值得注意的是,Python2和Python3在處理不同編碼的輸出上有差異,Python2可以直接打印GBK編碼,而Python3則不行。在打印dict時(shí),顯示中文時(shí)推薦使用字符串拼接而非dict直接輸出。參考以下資源深入了解:活的瀟灑80的博客《Python基礎(chǔ)【day03】:字符轉(zhuǎn)編碼操作(五)》和帥丶高高的博客《Python中的字符串與...
python2.x和3.x的區(qū)別
但在Python3.x中,range()函數(shù)返回的是一個(gè)迭代器。這意味著在Python3.x中,如果想要使用range()函數(shù)返回的列表,需要使用list()函數(shù)將迭代器轉(zhuǎn)換為列表。4、在Python2.x中,可以使用逗號(hào)將多個(gè)異常捕獲在同一個(gè)except語(yǔ)句中。但是在Python3.x中,需要將多個(gè)異常分別寫(xiě)在不同的except語(yǔ)句中。
python2和python3語(yǔ)法兼容嗎
Python2和Python3在語(yǔ)法上并不完全兼容。兩個(gè)版本之間存在一些差異,特別是在語(yǔ)法、標(biāo)準(zhǔn)庫(kù)和編碼方面。例如,Python2使用ASCII編碼,而Python3支持Unicode和中文,這意味著在Python2編寫(xiě)的代碼中,如果包含中文字符,可能需要修改才能在Python3中正常運(yùn)行。另外,Python3對(duì)一些語(yǔ)法進(jìn)行了改進(jìn)或去除了一些舊的...
相關(guān)評(píng)說(shuō):
塘沽區(qū)等效: ______ 沒(méi)有設(shè)么影響的win+rcmd在命令指示符下如果你要裝在py2那就pipinstalleasygui如果你要裝在py3那就pip3installeasygui
塘沽區(qū)等效: ______ 在python2中主要有str和unicode兩種字符串類(lèi)型,而到python3中改為了bytes和str,并且一個(gè)很重要的分別是,在python2中如果字符串是ascii碼的話,str和unicode是可以直接進(jìn)行連接和比較,但是到python3中就不行了,bytes和str是兩個(gè)獨(dú)立的類(lèi)型.另一個(gè)重要的是python2中不管是str還是unicode都可以直接寫(xiě)入文件,而不需要加上它是不是str的類(lèi)型寫(xiě)入方式,但是在python3中如果是寫(xiě)或者讀bytes類(lèi)型就必需帶上'b'.
塘沽區(qū)等效: ______ 可以同時(shí)安裝,步驟如下:一、安裝Python2(以及pip)1.1、到Python的官網(wǎng) https://www.python.org/ 下載Python的安裝文件, 對(duì)于Windows用戶來(lái)說(shuō),如果是32位系統(tǒng),則選擇x86版本;如果是64位系統(tǒng),則選擇64版本的安裝文件. 我自己...
塘沽區(qū)等效: ______ Python 3.x引入一些Python2不兼容的關(guān)鍵字和函數(shù),可以通過(guò)在 Python2 內(nèi)置的模塊 __future__ 導(dǎo)入.建議如果你想在代碼中支持 Python3.x,使用__future__導(dǎo)入它. 例如,如果想在 Python2 中擁有 Python 3.x 整數(shù)的除法行為,添加下面的 import 語(yǔ)句 from __future__ import division
塘沽區(qū)等效: ______ 如果說(shuō)普及的話 一定是python2 python3雖然有兩年了 但還是沒(méi)有python2的用戶多
塘沽區(qū)等效: ______ 如果是初學(xué)者,建議學(xué)習(xí)python2.x.python3.x和python2.x已經(jīng)并存很長(zhǎng)時(shí)間了.兩個(gè)版本的python都在更新,但目前python2.x更加成熟.現(xiàn)在大部分第三方類(lèi)庫(kù)都是基...
塘沽區(qū)等效: ______ 版本當(dāng)然是3.x的好,要不然也沒(méi)必要從2.x升級(jí)到3.x 由于3.x 與 2.x 差別較大,且3.x很多不兼容2.x.我當(dāng)時(shí)看的時(shí)候用的3.x版本,資料是2.x的,就出現(xiàn)很多錯(cuò)誤.畢竟2.x資料多,所以改成2.7版本 要是工作用的話就選2.x版本 ,當(dāng)前大部分用的都是2.x版本,要是學(xué)習(xí)的話,用3.x版本.畢竟以后多少年后3.x還是要取代2.x的
塘沽區(qū)等效: ______ 總結(jié)起來(lái)會(huì)有很多,所以我搬運(yùn)了下別人的答案: 以下是知乎的答案: 作者:王貓貓 > 1. print不再是語(yǔ)句,而是函數(shù),比如原來(lái)是 print 'abc' 現(xiàn)在是 print('abc') 但是 python2.6+ 可以使用 from __future__ import print_function 來(lái)實(shí)現(xiàn)相同功能 > ...
塘沽區(qū)等效: ______ 建議還是學(xué)習(xí)python2.7比較好.python本身語(yǔ)法結(jié)構(gòu)并不復(fù)雜,但在實(shí)際應(yīng)用中,會(huì)需要使用到很多其他的第三方包.目前很多第三方包都對(duì)python2.xx有很好的支持.雖然python3已經(jīng)出來(lái)一段時(shí)間了,但第三方支持包并不多,可能主要也是因?yàn)閜ython3.xx的語(yǔ)法改動(dòng)導(dǎo)致的. 我感覺(jué)python3.xx的某些語(yǔ)法改變,簡(jiǎn)直就是敗筆,第三方包開(kāi)發(fā)者本來(lái)開(kāi)發(fā)出來(lái)的東西,因?yàn)檎Z(yǔ)法改變而要去做相應(yīng)的修改,如果你是開(kāi)發(fā)人員,你是什么感覺(jué). 因此,我建議你還是學(xué)python2.xx比較好!以后隨著3.xx的發(fā)展你在轉(zhuǎn)學(xué)3.xx也不困難.
塘沽區(qū)等效: ______ 一、安裝Python2(以及pip)、安裝Python3(由于Python3自帶pip,所以無(wú)需另外安裝pip) 1.1、到Python的官網(wǎng) https://www.python.org/ 下載Python的安裝文件, 對(duì)于Windows用戶來(lái)說(shuō),如果是32位系統(tǒng),則選擇x86版本;如果是64位系統(tǒng),...