python2和python3的版本選擇問題

我先拋出我的觀點(diǎn),不要讓你的思維遷就于你的工具,而是讓你的工具遷就于你的思維!

python2和python3,從他們實(shí)現(xiàn)的精髓而言,其實(shí)真的沒有太多本質(zhì)的區(qū)別,我目前所感知的python3與python2的最大差別在于:

  1. python3的range相當(dāng)于python2的xrange。
  2. python3對于iterable(可迭代)對象全部采用惰性取數(shù)的原則,也就是在用的時(shí)候才去取數(shù),比如range (10)是一個(gè)range可迭代對象,而不是一個(gè)列表。一般如果要將可迭代對象迭代出,那么再對象外套一個(gè)list()就可以實(shí)現(xiàn)了(這種情況再使用map函數(shù)尤為明顯,你必須這樣套用list(map(...)))循環(huán)出map的內(nèi)容)。
  3. 對于生成器取消其next方法,next直接生格為內(nèi)置函數(shù)的級別。也就是對于生成器a,要循環(huán)出第1個(gè)元素,python2可以用a.next(), 但是這在python3會(huì)報(bào)錯(cuò),需改用next(a)。
  4. python3采用unicode編碼,解決了python2上很多的亂碼問題。
  5. python2將于2020年停止更新。
  6. python3的print()必須加后面的括號。

上面講的好像想表達(dá)python3優(yōu)于python2, 新手入門應(yīng)該優(yōu)先選擇python3。

但是這不是我的最終意愿,我其實(shí)更想表達(dá)的是,這只是他們的一些細(xì)微上面的差別,對于新手入門來說,他們其實(shí)只是會(huì)造成些微的困擾而已!!!

你究竟應(yīng)該選擇python2還是python3,應(yīng)該取決你所選定的那本教材使用的是哪一個(gè)版本的python!

比如,learn python the hard way和利用python進(jìn)行數(shù)據(jù)分析, 他們用的python版本是2,所以如果你是初學(xué)者的話,你應(yīng)該優(yōu)先選擇python2,這樣子可以最大程度的避免你剛?cè)腴T時(shí)候的,雖然你敲了一模一樣的代碼,但還是報(bào)錯(cuò)的困擾和挫折感。至于那些對這些困擾不在乎,可以自己搜索答案解決問題的同學(xué)來說,他們即使是用python3來運(yùn)行書中的代碼也是ok的,因?yàn)楫吘?個(gè)版本的差別并沒有那么大!

最后,講一下我的python版本使用,我入門是用的python 2.7, 入門書是learn python the hard way以及廖雪峰的python2.7教程,上的MITx 6.00.1x還有后來學(xué)習(xí)的利用python進(jìn)行數(shù)據(jù)分析都是用的是python2.7,但是我現(xiàn)在則主要用python3,主要是這樣子遇到亂碼的幾率會(huì)比較小,而且我用的那些包,如numpy, pandas, requests, bs4, scrapy等等都有python3的版本了。此外,當(dāng)你對python熟悉到一定程度其實(shí)這個(gè)版本轉(zhuǎn)換的成本是很小的!

愿你看了本文后,不會(huì)再對python版本的選擇問題產(chǎn)生糾結(jié)!

祝生活愉快!

凡星
2017.05.17

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容