學習Python 2還是Python 3?

2021-10-02 13:47:52 字數 3995 閱讀 2815

學習python 2還是python 3?

#答案:都要學!

是否有如下疑問:

python 3 才是python的未來。

python 官方都建議指直接學習python 3。

python 2 只維護到2023年。

python 2慢慢的就沒人用了。

那麼我們來**下 python 2和 python 3 放入區別了。

python官網顯示:python 2到2023年停止維護,但不應該成為你拒絕python 2的理由。

正如xp停止更新以後,很多基礎的和入門級的學習都需要xp環境。前幾天,微軟宣布將在2023年對win 7停止任何技術支援,之後即使遇到bug和安全問題,他們也不會再修復。但是,看到周邊的同事、朋友、親戚,到底是用win 7的多還是用win 10的多?

據說,按照python官方的原來計畫,python 2只支援到2023年,但又推遲到2023年,誰也說不准會不會再次延遲呢?

但是,在python這個圈子,就是有很多人吵著要讓別人公升級python 3。很多時候使用者並不關心自己用的是python 2還是python 3,只要能用就行。所以,用python 2的人並沒有什麼動力去公升級到python 3。

如果你覺得,python 3才是python的未來,不希望接觸python 2的專案。那麼,問題來了,女神跟你說,晚上來我家給我修下電腦唄,但是我的電腦是windows xp、win7的,你是去還是不去?

所以,如果你說,我一開始學的就是python 3,python 3也是python的未來,我不想去了解和學習python 2。那麼,你可能要和大半個中國網際網路失之交臂了。或許你也不在乎,但是,如果有人拿錢砸你讓你維護python 2的**呢?

我們都知道,在任何一家公司,公升級伺服器的作業系統版本都是乙個很慎重事情,程式**版本的公升級也是慎之又慎的事情。所以,我們有理由相信,python 2還會存在很長一段時間。很長是多長呢?至少比2023年還要長。

以windows 來說,當微軟宣布 windows 7 停止更新的時候,很多人依然抱著 windows 7 不放,當你問他們為什麼時,他們會一本正經地說,「新系統好卡啊」,或是「好多軟體都不相容啊」,或是「改變很大啊,好不習慣啊」,甚至是「 windows 7 已經是很好的系統了,微軟出個新系統就是為了坑錢」。

於是乎,春去春又來,每當有新的事物出現,這些人的想法依然沒有改變。

當我腦子把 windows 7 換成 python 2 、windows 10換成python 3,不禁感到一陣恐懼。新事物,新技術的出現,我們要積極擁抱,但不能把原來的抹殺掉了。

其次,從python 2到python 3確實有一些差異,這是必然的也是一定的。但是,並沒有大家想象的那麼大。就像整容一樣,這只是優化和提公升,而非徹頭徹尾的改變。python 2和python 3之間的差異不到python語法的10%,我們可以快速地了解哪些python 2裡面的語法在python 3中已經被棄用,在我們寫**的過程中,規避掉這一部分語法即可。在python的最佳實踐中,python 3裡棄用的python語法,在python 2裡面也不推薦使用,不然也不會被棄用了。如果你知道並堅持python的最佳實踐,那麼,對你來說,python 2和python 3的差異就更小了。

對比python 2.7 和 python3.6,巨集觀上介紹下python 3和python 2的區別。

python2與python3主要的區別在以下幾個方面:

print函式

整數相除

unicode

異常處理

xrange

map函式

不支援has_key其它

1、print函式

python 2中print是語句(statement),python 3中print則變成了函式。在python 3中呼叫print需要加上括號,不加括號會報syntaxerror。

python 2

print "hello world
輸出

hello world
python 3

print

("hello world"

)

輸出

hello world
print

"hello world"

輸出

file ""

, line 1

print

"hello world"

^syntaxerror: missing parentheses in call to 'print'

2、整數相除

在python 2中,3/2的結果是整數,在python 3中,結果則是浮點數。

python 2

print

'3 / 2 =',3

/2print

'3 / 2.0 =',3

/2.0

輸出

3/2

=13/

2.0=

1.5

python 3

print

('3 / 2 =',3

/2)print

('3 / 2.0 =',3

/2.0

)

輸出

3/2

=1.53/

2.0=

1.5

3、unicode

python 2有兩種字串型別:str和unicode,python 3中的字串預設就是unicode,python 3中的str相當於python 2中的unicode。

在python 2中,如果**中包含非英文本元,需要在**檔案的最開始宣告編碼,如下

-- coding: utf-8 -

在python 3中,預設的字串就是unicode,就省去了這個麻煩,下面的**在python 3可以正常地執行

4、異常處理

異常處理不同。

5、xrange

python 2中有 range 和 xrange 兩個方法。其區別在於,range返回乙個list,在被呼叫的時候即返回整個序列;xrange返回乙個iterator,在每次迴圈中生成序列的下乙個數字。python 3中不再支援 xrange 方法,python 3中的 range 方法就相當於 python 2中的 xrange 方法。

6、map函式

在python 2中,map函式返回list,而在python 3中,map函式返回iterator。

7、不支援has_key

python 3中的字典不再支援has_key方法。

8、其它

python 2和python 3師承一派,有所同,也有所不同。怎麼殺敵,劍在你手裡,怎麼殺敵看你的了。只要快!準!狠!就行了。

python3 和 python2 是不相容的,而且差異比較大。

所以先學 python2 還是 python3 都不是問題,或者說都是問題。

論學 python2 還是 python3,都需要注意另外一邊的不同點:所幸就是這些不同點很容易掌握,共同點才是我們需要好好學習的。畢竟,所有武功的招式中都有共通的地方。

所以個人建議:

如果是,你在企業中需要用到python而學習python的話,那就要看企業的應用python的版本進行學習;

如果是,想要更多的成熟解決方案,最少的bug,最穩定的應用那就用python2 ;

如果你是在讀大學的學生,那我建議你學習python3,等到畢業的時候或許python已經成為了主流。

如果是,個人自學,建議學習python3。

windows下python2和python3共存

配置步驟如下 作業系統 win10 安裝步驟省略,相信都能安裝 1 改名稱給電腦同時裝上python2.7和python3.5,在安裝目錄下修改python.exe為python2.exe和python3.exe 2 更改環境變數,加入d program files python27 和 d pro...

windows下python2和python3共存

配置步驟如下 作業系統 win10 安裝步驟省略,相信都能安裝 1 改名稱給電腦同時裝上python2.7和python3.5,在安裝目錄下修改python.exe為python2.exe和python3.exe 2 更改環境變數,加入d program files python27 和 d pro...

windows下python2和python3共存

python2和python3共存來說,試過anaconda開發環境,不太習慣。試過scoop包管理器,用了一段時間發現兩個版本的pip相容使用時出了問題。有一種不用第三方工具的辦法,很好用。e python37 scripts e python37 e python27 e python27 sc...