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