Python2 與Python3的版本區別例項分析
本文例項講述了Python2 與Python3的版本區別。分享給大家供大家參考,具體如下:
現在還有些開源模組還沒有更新到python3 ,不瞭解版本區別,無法對不合適的地方進行更改。
由於只追求向Python3靠近,所以對於python2的特別用法不探究。
此文不補全所有版本區別,僅作檔案記錄我遇到的版本區別.
print函式:
在 Python 2 中, print 被視為一個語句而不是一個函式
更改:
Python 2中的print語句==>Python 3中的print()函式
input():
python2的raw_input()更新為Python 3 中的input()
整數除法:
更新:
由py2中的捨去小數的除法==》py3中的計算比較精確的除法
如果py3中想要不保留小數,使用 // 運算子
但要注意小數中//運算子的使用,//是返回比實際的商要小的數。
Unicode編碼:
- 1.Python 2中的字串基於ASCII
- 2.Python 3 預設使用 Unicode,Python3中的字串型別預設是unicode型別的,另外新增了兩個位元組類:bytes和bytearrays
- Byte的使用:
- str物件轉換成bytes物件可以使用encode()
- bytes物件轉換成str物件使用decode()
- Python中對bytes型別的資料帶
b
- 由於編碼變化還導致了python中網路程式設計函式使用的變化,網路傳輸都是位元組流的,Python2的網路傳輸預設是位元組型的,而python3中字串是Unicode的,所以python3要對資料進行編碼再傳輸。
不等運算子
Python 2.x中不等於有兩種寫法 != 和 <>
Python 3.x中去掉了<>,只有!=一種寫法
現在仍有一些教程保留著<>的用法!
處理異常:
捕獲異常的語法由 except exception,variable 改為 except exception as variable
python3中將一些異常細化了,新增了不少異常
丟擲異常:
更新:
py3使用建構函式丟擲異常
raise 異常名,"自定義的異常資訊"
raise 異常名("自定義的異常資訊")
生成器的迭代:
python2中支援 生成器.next()
更新為
python3中的next(生成器),生成器.__next__()
關於Python相關內容感興趣的讀者可檢視本站專題:《Python函式使用技巧總結》、《Python面向物件程式設計入門與進階教程》、《Python資料結構與演算法教程》、《Python字串操作技巧彙總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》
希望本文所述對大家Python程式設計有所幫助。