Python 2.x 與3.x的版本區別介紹

Python因其開源與其語言簡潔優美等優點,受到很多人的喜愛與使用,所以Python的更新換代也很快,這裡就簡單介紹一下2.x 與3.x的版本區別,這些信息在官網上也都是可以找到的,因為就是官網更改,我們使用的,對於這個信息我們都是傳遞者。

Python 2.x 與3.x的版本區別介紹

Python的3​​.0版本,常被稱為Python 3000,或簡稱Py3k。相對於Python的早期版本,這是一個較大的升級。

為了不帶入過多的累贅,Python 3.0在設計的時候沒有考慮向下相容。

許多針對早期Python版本設計的程式都無法在Python 3.0上正常執行。

為了照顧現有程式,Python 2.6作為一個過渡版本,基本使用了Python 2.x的語法和庫,同時考慮了向Python 3.0的遷移,允許使用部分Python 3.0的語法與函數。

新的Python程式建議使用Python 3.0版本的語法。

除非執行環境無法安裝Python 3.0或者程式本身使用了不支援Python 3.0的第三方庫。目前不支援Python 3.0的第三方庫有Twisted, py2exe, PIL等。

大多數第三方庫都正在努力地相容Python 3.0版本。即使無法立即使用Python 3.0,也建議編寫相容Python 3.0版本的程式,然後使用Python 2.6, Python 2.7來執行。

重要的區別信息提取

如下,可能會被面試或者筆試問到,也是好記好回答的區別:

1. print函數改變,3.x之後都是使用print()函數(緊跟著print帶括號),已經沒有了2.x的print語句

2. 不等號的改變:Python 2.x中不等於有兩種寫法 != 和 <>

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

3. 除法的改變:Python中的除法有兩個運算符,/ 和 // 。

首先來說 / 除法:在python 2.x中/除法就跟我們熟悉的大多數語言,比如Java/C差不多,整數相除的結果是一個整數,把小數部分完全忽略掉,浮點數除法會保留小數點的部分得到一個浮點數的結果。在python 3.x中 / 除法不再這麼做了,對於整數之間的相除,結果也是浮點數

其次就是 // 除法,這種除法叫做floor除法(向下取整),會對除法的結果自動進行一個floor操作,在python 2.x和python 3.x中是一致的。意思就是 1//2 = 0.5 à 0 , 得到0

4. Xrange函數去除:去除2.X的Xrange()函數定義,3.x中range()函數與其有同等含義

5. 去除Long數據類型:Py3.X去除了long類型,現在只有一種整型——int,但它的行為就像2.X版本的long,新增了bytes類型,對應於2.X版本的八位串,定義一個bytes字面量的方法如下:

6. 一些內置函數(如map,reduce,filter)的改變(不懂可以先記著,等待熟悉了就知道區別了)

後面我會不定期發送一些學習Python語言的電子文檔給大家,希望大家喜歡!


分享到:


相關文章: