導航:首頁 > 編程語言 > python2與3差別大嗎

python2與3差別大嗎

發布時間:2024-12-03 23:53:29

『壹』 python2和3的區別大嗎

1、Python2之前是非常受歡迎的,現在很多軟體公司依然使用的是Python2,不過由於越來越多的公司開始從Python2遷移到3,因此初學者可以避免花費更多的時間學習過去的版本了。
2、Python2和Python3之間有一些是無法互相兼容的,現在很多開發人員都在使用Python3開發庫,許多老的基於Python2的開發包依然是無法兼容的,想要將Python2庫移植到Python3上,對於初學者來說還是比較困難的事情。
3、Python3有更好的Unicode編碼支持在Python3的語法之中,默認文化字元串就是Unicode,而Python2默認的存儲為ASCII,而且Unicode比ASCII更加通用,可以提供更多的選擇。
4、Python3版本改進了整數除法的問題,在Python2中如果你在小數點後面寫任何一個數字,計算會自動四捨五入的。而使用Python3的情況下是不需要擔心這種情況發生的。
5、兩個版本之間有不同的列印語句聲明語法,是語法差異,不影響Python的功能。

『貳』 python3和python2區別有什麼

python2版本和python3版本的區別,兩者對比如下

核心類差異

1. Python3 對 Unicode 字元的原生支持。

Python2 中使用 ASCII 碼作為默認編碼方式導致 string 有兩種類型 str 和 unicode,Python3 只

支持 unicode 的 string。Python2 和 Python3 位元組和字元對應關系為:

2. Python3 採用的是絕對路徑的方式進行 import

Python2 中相對路徑的 import 會導致標准庫導入變得困難(想像一下,同一目錄下有 file.py,如

何同時導入這個文件和標准庫 file)。Python3 中這一點將被修改,如果還需要導入同一目錄的文件必

須使用絕對路徑,否則只能使用相關導入的方式來進行導入。

3. Python2 中存在老式類和新式類的區別,Python3 統一採用新式類。新式類聲明要求繼承 object,

必須用新式類應用多重繼承。

4. Python3 使用更加嚴格的縮進。Python2 的縮進機制中,1 個 tab 和 8 個 space 是等價的,所

以在縮進中可以同時允許 tab 和 space 在代碼中共存。這種等價機制會導致部分 IDE 使用存在問題。

Python3 中 1 個 tab 只能找另外一個 tab 替代,因此 tab 和 space 共存會導致報錯:TabError:

inconsistent use of tabs and spaces in indentation.

python學習網,免費的python學習網站,歡迎在線學習!

廢棄類差異

1. print 語句被 Python3 廢棄,統一使用 print 函數

2. exec 語句被 python3 廢棄,統一使用 exec 函數

3. execfile 語句被 Python3 廢棄,推薦使用 exec(open("./filename").read())

4. 不相等操作符"<>"被 Python3 廢棄,統一使用"!="

5. long 整數類型被 Python3 廢棄,統一使用 int

6. xrange 函數被 Python3 廢棄,統一使用 range,Python3 中 range 的機制也進行修改並提高

了大數據集生成效率

7. Python3 中這些方法再不再返回 list 對象:dictionary 關聯的 keys()、values()、items(),zip(),

map(),filter(),但是可以通過 list 強行轉換:

1. mydict={"a":1,"b":2,"c":3}

2. mydict.keys() #<built-in method keys of dict object at 0x000000000040B4C8>

3. list(mydict.keys()) #['a', 'c', 'b']

8. 迭代器 iterator 的 next()函數被 Python3 廢棄,統一使用 next(iterator)

9. raw_input 函數被 Python3 廢棄,統一使用 input 函數

10. 字典變數的 has_key 函數被 Python 廢棄,統一使用 in 關鍵詞

11. file 函數被 Python3 廢棄,統一使用 open 來處理文件,可以通過 io.IOBase 檢查文件類型

12. apply 函數被 Python3 廢棄

13. 異常 StandardError 被 Python3 廢棄,統一使用 Exception

修改類差異

1. 浮點數除法操作符「/」和「//」的區別

「 / 」:

Python2:若為兩個整形數進行運算,結果為整形,但若兩個數中有一個為浮點數,則結果為

浮點數;

Python3:為真除法,運算結果不再根據參加運算的數的類型。

「//」:

Python2:返回小於除法運算結果的最大整數;從類型上講,與"/"運算符返回類型邏輯一致。

Python3:和 Python2 運算結果一樣。

2. 異常拋出和捕捉機制區別

Python2

1. raise IOError, "file error" #拋出異常

2. except NameError, err: #捕捉異常

Python3

1. raise IOError("file error") #拋出異常

2. except NameError as err: #捕捉異常

3. for 循環中變數值區別

Python2,for 循環會修改外部相同名稱變數的值

1. i = 1

2. print ('comprehension: ', [i for i in range(5)])

3. print ('after: i =', i ) #i=4

Python3,for 循環不會修改外部相同名稱變數的值

1. i = 1

2. print ('comprehension: ', [i for i in range(5)])

3. print ('after: i =', i ) #i=1

4. round 函數返回值區別

Python2,round 函數返回 float 類型值

1. isinstance(round(15.5),int) #True

Python3,round 函數返回 int 類型值

1. isinstance(round(15.5),float) #True

5. 比較操作符區別

Python2 中任意兩個對象都可以比較

1. 11 < 'test' #True

Python3 中只有同一數據類型的對象可以比較

1. 11 < 'test' # TypeError: unorderable types: int() < str()

閱讀全文

與python2與3差別大嗎相關的資料

熱點內容
決戰服務端源碼編譯 瀏覽:994
騰訊雲伺服器如何保持開啟 瀏覽:372
程序員抽煙怎麼樣 瀏覽:876
模擬器怎麼加入伺服器 瀏覽:295
yt88加密狗初始化 瀏覽:133
期貨5分鍾app哪裡有 瀏覽:509
什麼叫編譯編輯 瀏覽:462
未加密的wifi是什麼渠道 瀏覽:874
手機的文件夾怎麼卸載 瀏覽:244
php的配置文件在哪 瀏覽:119
linux安裝驅動怎麼編譯 瀏覽:259
男生解壓舞教程 瀏覽:236
壓縮彈簧尺寸怎麼寫 瀏覽:402
證券app哪裡看公司業績預測 瀏覽:426
快速掌握python3語法 瀏覽:158
好礦雲伺服器購買費用 瀏覽:307
遞歸演算法如何分析時間復雜度 瀏覽:264
centos安裝rpm命令安裝 瀏覽:476
定義父類和定義子類python 瀏覽:17
加密晶元原理mcu 瀏覽:269