學習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
輸出("hello world"
)
hello world
輸出
"hello world"
2、整數相除file ""
, line 1
"hello world"
^syntaxerror: missing parentheses in call to 'print'
在python 2中,3/2的結果是整數,在python 3中,結果則是浮點數。
python 2
輸出'3 / 2 =',3
/2print
'3 / 2.0 =',3
/2.0
python 33/2
=13/
2.0=
1.5
輸出('3 / 2 =',3
/2)print
('3 / 2.0 =',3
/2.0
)
3、unicode3/2
=1.53/
2.0=
1.5
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...