python3和python2的區別

2023-01-09 18:15:25 字數 5007 閱讀 2572

1樓:風鈴

> 1. print不再是語句,而是函式,比如原來是 print 'abc' 現在是 print('abc')

但是 python2.6+ 可以使用 from __future__ import print_function 來實現相同功能

> 2. 在python 3中,沒有舊式類,只有新式類,也就是說不用再像這樣 class foobar(object): pass 顯式地子類化object

但是最好還是加上. 主要區別在於 old-style 是 classtype 型別而 new-style 是 type型別

> 3. 原來1/2(兩個整數相除)結果是0,現在是0.5了

python 2.2+ 以上都可以使用 from __future__ import division 實現改特性, 同時注意 // 取代了之前的 / 運算

> 4. 新的字串格式化方法format取代%

錯誤, 從 python2.6+ 開始已經在str和unicode中有該方法, 同時 python3依然支援 % 算符

> 6. xrange重新命名為range

同時更改的還有一系列內建函式及方法, 都返回迭代器物件, 而不是列表或者 元組, 比如 filter, map, dict.items 等

> 7. !=取代 < >

python2 也很少有人用 < > 所以不算什麼修改

> 8. long重新命名為int

不完全對, python3 徹底廢棄了 long+int 雙整數實現的方法, 統一為 int , 支援高精度整數運算.

> 9. except exception, e變成except (exception) as e

只有 python2.5 及以下版本不支援該語法. python2.6 是支援的. 不算新東西

> 10. exec變成函式

類似 print() 的變化, 之前是語句.

簡單補充下

* 主要是類庫的變化, 組織結構變了些. 但功能沒變. urlparse - > urllib.parse 這樣的變化

* 最核心的變化它沒有說, 對 bytes 和 原生 unicode 字串的支援, 刪除了 unicode 物件, str 為原生 unicode 字串, bytes 替代了之前的 str 這個是最核心的.

知乎**

python2和python3的區別

2樓:老男孩教育

從基本設計上來說,python3的目的就是沒有**相容的包袱情況下進行改進了python,相對於python2來說,python3有很多的改進,更加容易理解,也更加合理。

而且從應用的角度上來說,pypy、web框架、科學計算包、scrapy等常用模組都是支援python3的,但是部分比較陳舊的庫已經沒有人進行維護,也就沒有支援python3.

當我們進行日常使用的情況之下,可以直接寫python2\3相容的**,相對於來說,python2對於舊庫的支援更多一些,至少在學界還是比較流行的。

相對於來說,python3對於python學習來說更加具有好處,也是未來流行的趨勢,建議直接學習python3,未來使用率更為廣泛。無論是python2還是python3先學都不是問題的,差別並不是很大,主要還是靠自己,只要自己願意去學習,都可以選擇。

3樓:天天不看

> 1. print不再是語句,而是函式,比如原來是 print 'abc' 現在是 print('abc')

但是 python2.6+ 可以使用 from __future__ import print_function 來實現相同功能

> 2. 在python 3中,沒有舊式類,只有新式類,也就是說不用再像這樣 class foobar(object): pass 顯式地子類化object

但是最好還是加上. 主要區別在於 old-style 是 classtype 型別而 new-style 是 type型別

> 3. 原來1/2(兩個整數相除)結果是0,現在是0.5了

python 2.2+ 以上都可以使用 from __future__ import division 實現改特性, 同時注意 // 取代了之前的 / 運算

> 4. 新的字串格式化方法format取代%

錯誤, 從 python2.6+ 開始已經在str和unicode中有該方法, 同時 python3依然支援 % 算符

> 6. xrange重新命名為range

同時更改的還有一系列內建函式及方法, 都返回迭代器物件, 而不是列表或者 元組, 比如 filter, map, dict.items 等

> 7. !=取代 < >

python2 也很少有人用 < > 所以不算什麼修改

> 8. long重新命名為int

不完全對, python3 徹底廢棄了 long+int 雙整數實現的方法, 統一為 int , 支援高精度整數運算.

> 9. except exception, e變成except (exception) as e

只有 python2.5 及以下版本不支援該語法. python2.6 是支援的. 不算新東西

> 10. exec變成函式

類似 print() 的變化, 之前是語句.

簡單補充下

* 主要是類庫的變化, 組織結構變了些. 但功能沒變. urlparse - > urllib.parse 這樣的變化

* 最核心的變化它沒有說, 對 bytes 和 原生 unicode 字串的支援, 刪除了 unicode 物件, str 為原生 unicode 字串, bytes 替代了之前的 str 這個是最核心的.

* 其它... 貌似不怎麼重要了.

4樓:鄰冰

簡單的說,2是舊3是新,3是2的升級版,3完全高於2,2是時代的眼淚3是現在和未來,2逐漸被淘汰3用的人越來越多。

之前兩個版本共存只是因為諸多package的更新換代並沒有跟上,但是到了現在只要還有活人維護的package基本都相容3了,然而新建的package卻越來越多不相容2。使用2的意義基本沒有了,日常用3大不了留一個2備用就行。

拓展回答:

python, 是一種物件導向的解釋型計算機程式設計語言,由荷蘭人guido van rossum於2023年發明,第一個公開發行版發行於2023年。

python是純粹的自由軟體, 源**和直譯器cpython遵循 gpl(gnu general public license)協議。python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮排。

python具有豐富和強大的庫。它常被暱稱為膠水語言,能夠把用其他語言製作的各種模組(尤其是c/c++)很輕鬆地聯結在一起。

常見的一種應用情形是,使用python快速生成程式的原型(有時甚至是程式的最終介面),然後對其中[3]  有特別要求的部分,用更合適的語言改寫,比如3d遊戲中的圖形渲染模組,效能要求特別高,就可以用c/c++重寫,而後封裝為python可以呼叫的擴充套件類庫。

需要注意的是在您使用擴充套件類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現。

7月20日,ieee釋出2023年程式語言排行榜:python高居首位。

python2與python3的區別?

5樓:匿名使用者

類似的文章很多,一般也是檢些主要的區別。這個csdn的一篇總結網頁連結。

如果是學習不用糾結,學python3就好,和xp、win7有點像,有差別,但不至於說會用xp不會用win7

6樓:

print函式的使用不同

- 解析使用者輸入的方法有一些差異

- xrange模組(python3中沒有xrange模組,換成了range模組)

- 字串格式有區別、bytes資料型別(重點)- try except語法變化

- 開啟檔案語法變化

- 等等,還有一些小細節的問題,這裡就不一一贅述了。

想要了解版本2和3 的區別,以及各個版本的更新內容可以看黑馬程式設計師的社群,有相關文獻。並且有學習線路圖,每個模組下面都含有相關的公開課,內附原始碼和筆記。

7樓:老男孩教育

從基本設計上來說,python3的目的就是沒有**相容的包袱情況下進行改進了python,相對於python2來說,python3有很多的改進,更加容易理解,也更加合理。

而且從應用的角度上來說,pypy、web框架、科學計算包、scrapy等常用模組都是支援python3的,但是部分比較陳舊的庫已經沒有人進行維護,也就沒有支援python3.

當我們進行日常使用的情況之下,可以直接寫python2\3相容的**,相對於來說,python2對於舊庫的支援更多一些,至少在學界還是比較流行的。

相對於來說,python3對於python學習來說更加具有好處,也是未來流行的趨勢,建議直接學習python3,未來使用率更為廣泛。

python3和python2的區別

8樓:山上一朵小局花

1. print不再是語句,而是函式,比如原來是 print 'abc' 現在是 print('abc')

但是 python2.6+ 可以使用 from __future__ import print_function 來實現相同功能

2. 在python 3中,沒有舊式類,只有新式類,也就是說不用再像這樣 class foobar(object): pass 顯式地子類化object

但是最好還是加上. 主要區別在於 old-style 是 classtype 型別而 new-style 是 type型別

3. 原來1/2(兩個整數相除)結果是0,現在是0.5了

python 2.2+ 以上都可以使用 from __future__ import division 實現改特性, 同時注意 // 取代了之前的 / 運算

4. 新的字串格式化方法format取代%

錯誤, 從 python2.6+ 開始已經在str和unicode中有該方法, 同時 python3依然支援 % 算符!

python3和python2的區別

1.效能復 py3.0執行 pystone benchmark的速度比py2.5慢30 制guido認為py3.0有極大的優 bai化空間,du在字串和 zhi整形操作上可以取得很好的優化結果。py3.1效能比 daopy2.5慢15 還有很大的提升空間。2.編碼 py3.x原始碼檔案預設使用utf...

Python 2和Python 3有哪些主要區別

1.print不再是語句,而是函式,比如原來是 print abc 現在是 print abc 但是 python2.6 可以使用 from future import print function 來實現相同功能 2.在python 3中,沒有舊式類,只有新式類,也就是說不用再像這樣 class ...

同時裝了python3和python2怎麼用

pip3 就是呼叫python3 主要還是看你的設定 同時裝了python3和python2,怎麼用pip 看你用什麼系統了 在windows中,把哪個版本的加在環境變數中,pip以後就裝在了哪個site package中了 linux下,就是python3.x用pip3,預設的是pip,用在pyt...