當前位置:成語大全網 - 書法字典 - python2.7和3.3的區別

python2.7和3.3的區別

python2和python3的區別如下。

1中對Unicode字符的本機支持。Python3。

在Python2中使用ASCII碼作為默認編碼方法導致了兩種類型的字符串:str和unicode,以及Python3。

支持unicode的字符串。Python2和Python3的字節和字符對應於:

2.Python3使用絕對路徑導入。

Python2中相對路徑的導入會使標準庫的導入變得困難(假設同壹個目錄下有file.py,比如

如何同時導入這個文件和標準庫文件。這壹點在Python3中會有修改。如果您仍然需要導入同壹目錄中的文件,您必須

必須使用絕對路徑,否則只能通過相關導入進行導入。

3.Python 2中的舊類和新類是有區別的,Python3統壹采用新類。新的類聲明需要繼承對象,

多重繼承必須應用於新類。

4.Python3使用更嚴格的縮進。在Python2的縮進機制中,1制表符和8空格是等價的。

以便在縮進中允許制表符和空格在代碼中同時存在。這種等價機制會導致壹些ide的使用出現問題。

Python3中的1制表符只能被另壹個制表符替換,所以制表符和空格***的存在會導致壹個錯誤:TabError:

縮進中制表符和空格的使用不壹致。

丟棄的階級差異

六五四三八+0。print語句被Python3拋棄,統壹使用了print函數。

2.exec語句被python3拋棄,統壹使用exec函數。

3.execfile語句被Python3拋棄,建議使用exec(open(。/文件名”)。read())。

4.不等運算符”

5.長整型被Python3拋棄,統壹使用int。

6.xrange函數被Python3拋棄,Python3中的range機制也進行了修改和改進。

提高了大數據集的生成效率。

7.Python 3中的這些方法不再返回列表對象:與dictionary關聯的key()、values()、items()、zip()。

Map(),filter(),但是可以通過list強制轉換:

1.mydict={"a":1," b":2," c":3}

2.my dict . keys()# & lt;0x000000000040B4C8 >處的dict對象的內置方法鍵;

3.list(mydict.keys()) #['a ',' c ',' b']

8.叠代器的next()函數被Python3放棄,統壹使用next(叠代器)。

9.raw _ input函數被Python3拋棄,統壹使用input函數。

10.字典變量的has_key函數被Python放棄,統壹使用in關鍵字。

11的功能。file被Python3拋棄,open被用來處理文件。可以通過io檢查文件類型。IOBase

12.Python3放棄了apply函數。

13.異常StandardError被Python3拋棄,異常被統壹使用。

修改階級差異

1.浮點數除法運算符“/”和“//”的區別

" / ":

Python2:如果運算兩個整數,結果是整數,但如果兩個數中有壹個是浮點數,結果是。

浮點數;

Python3:對於真除法,運算結果不再基於參與運算的數的類型。

"//":

Python2:返回小於除法結果的最大整數;從類型學上講,與“/”運算符返回的類型邏輯壹致。

Python3:結果和Python2壹樣。

2.異常拋出和捕獲機制的區別

Python2

1.Raiseorror," fileerror" #引發異常。

2.除了NameError,err: #捕捉異常。

Python3

1.raise error(" file error ")#拋出異常。

2.except NameError as err: #捕捉異常。

3.for循環中變量值的差異

Python2,for循環修改同名的外部變量的值。

1.i = 1

2.打印('理解: ',[i for i in range(5)])

3.print ('after: i = ',i ) #i=4

Python3,for循環不修改同名的外部變量的值。

1.i = 1

2.打印('理解: ',[i for i in range(5)])

3.print ('after: i = ',i ) #i=1