我主要從兩方面來說明二者之間的差別:
在語法上的主要差別:
1. Print函式
在python2中print是一種輸出的語句,即直接print “Hello, World!”就可以;但是在python3中print是作為一個函式來呼叫的,print(“Hello, World!”)
2. 編碼方式
在python2中預設的編碼方式是ASCII,因此如果在程式碼中有出現中中文,就不得不在程式碼的頭部進行編碼的宣告“# -*- coding: utf-8 -*-”;而在python3中的預設編碼方式是utf-8,因此對各種語言的相容性就很好。
3. 除法運算
python2中進行整數之間的除法,其結果也會是整數。但是python3會預設為float型別的除法,如對於3 / 2,python2結果為1;python3結果為1.5
4. xrange
python2,常常會用xrange()來建立一個可迭代的物件,通常用在for迴圈中。但是在python3中將xrange換成了range,通常情況下range會比xrange快。
上面只是列舉了部分常見的區別,向知道更多可以自行查閱。由於python 3引入了一些與python 2不相容的關鍵字和特性,因此官方方便開發者在python2和python3之間的轉換,引入了__futrue__模組。在Python 2中,可以透過內建的__future__模組匯入這些新內容。
在支援上的差別
起初python3剛推出的時候,因為支援python2的包比較多,所以python3一直沒有推廣來開,但隨之針對python3開發的包越來越多,同時python官方也鼓勵人們使用python3。因此python3的普及率就逐漸超過了python2
目前官方已經宣佈對python2.7,即python2的最後一版,的支援包括後續開發和bug修復將在2020年完全停止。同時科學計算庫Numpy也宣佈從2019年1月1日起將不再支援python2,此外Python Web框架Django釋出的2.0版本,也不再支援python2,Redhat也宣佈放棄了支援python2。因此,建議新入門python的同學就從python3學起。
我主要從兩方面來說明二者之間的差別:
在語法上的主要差別:
1. Print函式
在python2中print是一種輸出的語句,即直接print “Hello, World!”就可以;但是在python3中print是作為一個函式來呼叫的,print(“Hello, World!”)
2. 編碼方式
在python2中預設的編碼方式是ASCII,因此如果在程式碼中有出現中中文,就不得不在程式碼的頭部進行編碼的宣告“# -*- coding: utf-8 -*-”;而在python3中的預設編碼方式是utf-8,因此對各種語言的相容性就很好。
3. 除法運算
python2中進行整數之間的除法,其結果也會是整數。但是python3會預設為float型別的除法,如對於3 / 2,python2結果為1;python3結果為1.5
4. xrange
python2,常常會用xrange()來建立一個可迭代的物件,通常用在for迴圈中。但是在python3中將xrange換成了range,通常情況下range會比xrange快。
上面只是列舉了部分常見的區別,向知道更多可以自行查閱。由於python 3引入了一些與python 2不相容的關鍵字和特性,因此官方方便開發者在python2和python3之間的轉換,引入了__futrue__模組。在Python 2中,可以透過內建的__future__模組匯入這些新內容。
在支援上的差別
起初python3剛推出的時候,因為支援python2的包比較多,所以python3一直沒有推廣來開,但隨之針對python3開發的包越來越多,同時python官方也鼓勵人們使用python3。因此python3的普及率就逐漸超過了python2
目前官方已經宣佈對python2.7,即python2的最後一版,的支援包括後續開發和bug修復將在2020年完全停止。同時科學計算庫Numpy也宣佈從2019年1月1日起將不再支援python2,此外Python Web框架Django釋出的2.0版本,也不再支援python2,Redhat也宣佈放棄了支援python2。因此,建議新入門python的同學就從python3學起。