1. 程式人生 > >Python2與Python3的區別:

Python2與Python3的區別:

抽象 傳參數 super() peer bytes 當前 內部函數 優化 使用

前言:目前python兩個版本Python2與Python3同時存在,並且這兩個版本都在維護更新,但是Python2應該在2020年就停止維護更新了,那麽到底選擇Python2還是Python3,這個要取決於當前的要使用的庫、框架支持哪個版本。現在做一下Python2與Python3的區別:

1、 性能:Py3起始比Py2的效率低,但是Py3具有極大的優化空間,效率正在追趕

2、 編碼:Py3原碼文件默認使用utf-8編碼,使得變量名更為廣闊

3、 語法:

1》 Py3去除了<>,改用!=,意思更加明了。

2》 加入了as,with,True,False,None這些關鍵字。

3》 整型除法返回浮點數,整除使用//。

4》 加入了nonlocal語句:對局部變量進行聲明,內部函數使用外部函數的局部變量進行修改。

5》 去除了print語句,加入了print()函數。

6》 去除了raw_input,加入了input()函數。

7》 新的super(),可以不再給super()傳參數。

8》 改變了順序操作符的行為,例如x<y,當x和y類型不匹配時,拋出TypeErrorer,而不是返回隨即的bool值。

9》 新式的8進制字變量。

10》 Py2字符串以8-bit字符串存儲,Py3字符串以16-bit Unicode字符串存儲,現在字符串只有str一種類型。

11》 數據類型:Py3去除了long類型,現在只有一種整型—int,新增了bytes類型,對應於Py2中的八位串。Str對象和bytes對象可以使用encode()(str->bytes)or.decode()(bytes->str)方法相互轉化。

12》 面向對象中引入了抽象基類。13》異常:所有異常都從BaseEc=xception繼承,並刪除了StardardError。

4、 其他:

1》Py3將xrange()改名為range(),要想使用range()獲得一個list,必須顯示調用。

2》file類被廢棄,打開文件用open(path)

Python2與Python3的區別: