1. 程式人生 > 程式設計 >Python2 與Python3的版本區別例項分析

Python2 與Python3的版本區別例項分析

本文例項講述了Python2 與Python3的版本區別。分享給大家供大家參考,具體如下:

現在還有些開源模組還沒有更新到python3 ,不瞭解版本區別,無法對不合適的地方進行更改。

由於只追求向Python3靠近,所以對於python2的特別用法不探究。

此文不補全所有版本區別,僅作檔案記錄我遇到的版本區別.


print函式:

在 Python 2 中, print 被視為一個語句而不是一個函式

更改:

Python 2中的print語句==>Python 3中的print()函式

image_thumb1

image_thumb


input():

python2的raw_input()更新為Python 3 中的input()


整數除法:

更新:

由py2中的捨去小數的除法==》py3中的計算比較精確的除法

如果py3中想要不保留小數,使用 // 運算子

image_thumb2

image_thumb3

但要注意小數中//運算子的使用,//是返回比實際的商要小的數。

image_thumb4


Unicode編碼:

  • 1.Python 2中的字串基於ASCII
  • 2.Python 3 預設使用 Unicode,Python3中的字串型別預設是unicode型別的,另外新增了兩個位元組類:bytes和bytearrays
  • Byte的使用:
    • str物件轉換成bytes物件可以使用encode()
    • bytes物件轉換成str物件使用decode()
    • Python中對bytes型別的資料帶 b
      字首的單引號或雙引號表示:

image_thumb6

  • 由於編碼變化還導致了python中網路程式設計函式使用的變化,網路傳輸都是位元組流的,Python2的網路傳輸預設是位元組型的,而python3中字串是Unicode的,所以python3要對資料進行編碼再傳輸。

不等運算子

Python 2.x中不等於有兩種寫法 != 和 <>

Python 3.x中去掉了<>,只有!=一種寫法

現在仍有一些教程保留著<>的用法!


處理異常:

捕獲異常的語法由 except exception,variable 改為 except exception as variable

image_thumb5

python3中將一些異常細化了,新增了不少異常


丟擲異常:

更新:

py3使用建構函式丟擲異常

raise 異常名,"自定義的異常資訊"
raise 異常名("自定義的異常資訊")

image_thumb1[1]


生成器的迭代:

python2中支援 生成器.next()

更新為

python3中的next(生成器),生成器.__next__()

image_thumb7

關於Python相關內容感興趣的讀者可檢視本站專題:《Python函式使用技巧總結》、《Python面向物件程式設計入門與進階教程》、《Python資料結構與演算法教程》、《Python字串操作技巧彙總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

希望本文所述對大家Python程式設計有所幫助。