Python2和Python3的區別

村長python發表於2021-12-02

很多人都比較關心python2.x和python3.x的區別,這件事聊起來就要從Python的歷史說起來了,python是1989年開發出來了,到今天已經30多歲了。到現在有三個主要版本,幾十個小版本。下面我們就簡單介紹一下。


Python 和其他語言一樣也是有很多不同版本的,最早的 Python1 版本因為沒有多少人使用,也就不了了之了。

至於 Python2 使用的人就比較多了, Python2 2000 10 月份釋出的,最後一個版本是 Python2.7 2008 年結束,然後社群就不支援了。雖然結束但是之後的幾年裡還有一些開發人員繼續使用 Python2 ,即使到現在也有一些開發人員還在使用它。


現在我們新手學習的都是 Python3 ,但是 Python3 Python2 不相容,所以很多以前使用 Python2 開發的專案想改成 Python3 就比較費勁了。這裡我們來重點聊聊 python2.x python3.x 的區別。

1. 程式碼規範不一樣

   python2.x :原始碼重複,不規範
   python3.x :整合原始碼,更清晰優美簡單

2. 編碼種類不一樣

   python2.x :預設編碼 ASCII 編碼
   python3.x :預設編碼 UTF-8

3.python3.x 捨棄了長整型

   python2.x :有長整型 long
   python3.x long 整數型別被廢棄,統一為 int

4. 列印函式的語法變化

   python2.x print 語句, print 空格 + 列印內容
   python3.x print() 函式, print( 列印內容 )

5. 互動函式不同

   python2.x raw_input() input()
   raw_input() 函式的輸入內容型別為字串
   input() 函式的輸入內容型別為輸入字元的型別

6. 鍵盤讀取輸入方面

    Python3 只保留 input() 函式,且輸入資料全部作為字串處理;
    Python2 還支援 row_input() 函式, input() 函式在處理輸入數字的過程中,若輸入的數字加引號,則作為字串處理,否則當作數字處理。

7. 整除

    Python3 中,整除操作均轉化成浮點型數值型別進行處理,
    Python2 中整除操作執行四捨五入操作。

8.xrange() 函式

    Python2 中有 range() xrange() 函式,其中 xrange() 是按需返回列表大小,以節省記憶體佔用,
    Python3 中將 xrange() 函式更名成 range() 函式,且 Python3.2 以及更高的版本中支援切片。

9.next() .next() 函式

    Python2 對兩個函式均支援,
    Python3 只支援 next() 函式。


再給大家介紹一個 python2 python3 轉換的工具

2to3.py 指令碼將被通常安裝在 tools/scripts 資料夾。 它讀取 Python2.x 原始碼,並應用了一系列的修復將它轉變成有效的 Python3.x 程式碼 ; 如: 2to3 -w test.py


這裡面還有很多細節有所不同,這裡沒辦法和大家一一講解,但是要明白的一點就是,你學的是 python3 ,暫時沒有必要管的太多,當你學會 python3 之後,再去看 python2 一點壓力都沒有,等你工作後去修改公司老程式也不會有壓力。畢竟每種語言都在不斷的進化,有的語言一個月就要變化一次, python 也是一樣,不可能每次變化大家都要重新學習一遍。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70010583/viewspace-2845499/,如需轉載,請註明出處,否則將追究法律責任。

相關文章