挨踢部落故事匯(30):我與Python的相愛(ài)相殺
原創(chuàng)【51CTO.com原創(chuàng)稿件】Taniey與Python 結(jié)緣也是個(gè)意外,公司重組,他和隊(duì)友頂著幾個(gè)星期的壓力,徒手搭建服務(wù)器,這才有了與Python的故事。有BUG要上,沒(méi)有BUG制造BUG也要上。希望用他這7年的填坑經(jīng)驗(yàn)給同樣在Python世界里掙扎的人以茲鼓勵(lì)。
Taniey·Python開(kāi)發(fā)工程師
Taniey是個(gè)典型的吊絲程序猿,愛(ài)好發(fā)呆,Bug專(zhuān)屬制造者。曾挖了無(wú)數(shù)坑,埋了自己坑了隊(duì)友。
挖完坑就跑?那不能夠。。。做不倒全身而退,就踏踏實(shí)實(shí)填坑吧。
初識(shí)Python,從官網(wǎng)開(kāi)始
話(huà)說(shuō)Taniey與Python 結(jié)緣也是個(gè)意外,由于公司重組,領(lǐng)導(dǎo)把他和隊(duì)友們都給拉出去,說(shuō):給你們幾個(gè)星期,把服務(wù)給建起來(lái),否則…,(哈哈,沒(méi)那么嚴(yán)重了,就是把他們單獨(dú)分出去成立子公司,所有東西都要重新開(kāi)發(fā),不過(guò)壓力還是蠻大的),沒(méi)辦法,他這個(gè)C++死粉如果還采用C++去做開(kāi)發(fā),那等服務(wù)開(kāi)發(fā)出來(lái)早就死翹翹啦,轉(zhuǎn)去尋求其它開(kāi)發(fā)效率更高的語(yǔ)言,這才有了與Python的接觸。
半路出家的Taniey,在這之前可是一點(diǎn) Python的影子都沒(méi)接觸過(guò)。別人都說(shuō)買(mǎi)書(shū)學(xué),可是他呢,小摳兒就沒(méi)買(mǎi)(其實(shí)就是時(shí)間太緊,看書(shū)那真是來(lái)不及的)。網(wǎng)上學(xué)吧,當(dāng)時(shí)他找個(gè)一個(gè)網(wǎng)址真是不錯(cuò),寫(xiě)的既簡(jiǎn)潔,又很實(shí)用,雖然網(wǎng)址只是對(duì)有其它語(yǔ)言基礎(chǔ)的更合適。不過(guò)很遺憾,Taniey找不到這個(gè)網(wǎng)址了,能找到的都是些系統(tǒng)講解的網(wǎng)址,如果要進(jìn)行系統(tǒng)學(xué)習(xí)這些網(wǎng)址很好,大部分開(kāi)發(fā)者都在短時(shí)間進(jìn)行快速攻堅(jiān),還是找點(diǎn)兒干貨。
對(duì)于買(mǎi)書(shū),Taniey覺(jué)得書(shū)是個(gè)好東西,既能隨時(shí)看,又能夠系統(tǒng)地學(xué)習(xí),不過(guò)想要得到一手的資料, Python官網(wǎng)就是不二之選,為什么這么說(shuō),國(guó)外網(wǎng)站,對(duì)產(chǎn)品的說(shuō)明文檔,沒(méi)得說(shuō),很有條理,也很詳細(xì),并且全部?jī)?nèi)容也不是很多(Python本身語(yǔ)法就不多嘛,很多開(kāi)發(fā)者說(shuō)Python簡(jiǎn)潔,這也是其中一個(gè)原因),一個(gè)星期就可以看完,還是在業(yè)余時(shí)間!所以不要猶豫,去看吧,順便還能學(xué)點(diǎn)英語(yǔ),多好~~
再識(shí)Python,已是囊中物
學(xué)習(xí)Python,***是有項(xiàng)目可以做,在項(xiàng)目中學(xué)習(xí)這是最為快速的學(xué)習(xí)方法,工作學(xué)習(xí)兩不誤(話(huà)說(shuō)哪有這個(gè)好的環(huán)境讓你學(xué),那公司可真是仁慈?。?,現(xiàn)在想想當(dāng)時(shí)頂著壓力學(xué)的Python,還真是萬(wàn)幸。
都說(shuō)Python代碼簡(jiǎn)潔,初學(xué)還是建議先不要刻意追求他的代碼有多簡(jiǎn)潔,先繁后簡(jiǎn)再優(yōu)化(雖然說(shuō)得有點(diǎn)不負(fù)責(zé)任,不過(guò)有多少代碼是一次成型的?),先用起來(lái)再說(shuō),尤其是對(duì)其它編程語(yǔ)言的轉(zhuǎn)型者而言。當(dāng)你對(duì)Python如魚(yú)得水的時(shí)候,你會(huì)看到Python是如此的強(qiáng)大。
有一點(diǎn)需要注意,Python現(xiàn)在有兩個(gè)主版本在使用,并且是不兼容的,初學(xué)者的大坑啊。
1、比如 print 的使用:
在Python2 里你可以直接使用:print "沒(méi)有括號(hào)的 print 打印"
在Python3里你需要強(qiáng)制使用:print("有括號(hào)的 print 打印")
Python2 里的 print 與 Python3里的 print,如果你去看兩個(gè)版本的print 解釋文檔,就會(huì)發(fā)現(xiàn),python2解釋文檔里有一個(gè),注意說(shuō)明(Note),告訴你這個(gè)不加括號(hào)的 print 是使用了 print 聲明(statement),加了括號(hào)的print 才是真正使用的 print 函數(shù)(function)。
有興趣可以自己找到看:
2、Python2 到 2020年就會(huì)停止更新,所以如果不是有歷史問(wèn)題就使用Python3吧。Taniey不才就入了這個(gè)坑,還好 Python有個(gè) py2to3。
另外,用Python2的時(shí)候一定要注意Python字符串編碼,很容易就掉進(jìn)去出不來(lái)。
3、Python的tab與空格。因?yàn)?Python是以空白字符來(lái)檢測(cè)作用域的,所以,空白字符的使用就比較重要了,很多人在里沒(méi)少栽跟頭,在這里***養(yǎng)成一個(gè)好習(xí)慣,使用空格不要使用tab,好在一般IDE,都會(huì)對(duì)tab 和空格做自動(dòng)轉(zhuǎn)換,方便許多。
如下幾行代碼:你能知道哪個(gè)是空格,哪個(gè)是TAB?
空白字符顯示出來(lái),就更明白了:
做Python給Taniey***感觸就是基本上不需要寫(xiě)太多東西,需要用到什么只要去PyPI上找一定能找得到。
4、IDE 選擇。作開(kāi)發(fā),IDE是必不可少的,網(wǎng)上可以搜索到很多關(guān)于介紹Python IDE的,一說(shuō)都是一堆,當(dāng)時(shí)Taniey沒(méi)經(jīng)驗(yàn),只能挨個(gè)測(cè)試。他測(cè)試的血淚史就先不說(shuō)了,就說(shuō)說(shuō)測(cè)試結(jié)果:
在windows上做的開(kāi)發(fā) ,并在 linux 上運(yùn)行,Taniey測(cè)試最多的是:
Notepad++ , Visual studio PythonIDE 插件,Eclipse+PyDev, PyCharm
①Notepad++:沒(méi)錯(cuò),就是一個(gè)記事本性質(zhì)的工具,而且最開(kāi)始他居然選的就是這個(gè),當(dāng)初用它是因?yàn)楹?jiǎn)單,后來(lái)不用它沒(méi)辦法也是因?yàn)樘?jiǎn)單了。雖然這個(gè)工具可以加很多插件來(lái)達(dá)到類(lèi)似IDE的功能,不過(guò)跟真正的IDE還差得遠(yuǎn)呢。
②Visual studio PythonIDE 插件,這個(gè)插件,與Visual studio 天然集成,很符合 VS風(fēng)格,起初他用的時(shí)候還是相當(dāng)不錯(cuò),不過(guò)用多了就會(huì)發(fā)現(xiàn)到處都是BUG,招人厭了(當(dāng)時(shí)Taniey用的時(shí)候才剛2.0,現(xiàn)在都什么版本)。
③PyCharm,聽(tīng)官網(wǎng)吹得挺好,Taniey感覺(jué)就是拿Eclipse 改出來(lái)的,沒(méi)啥特別(不要噴,蘿卜白菜,各有所愛(ài))。
PyCharm破解版,License server 填寫(xiě)>>
PyCharm注冊(cè)碼的方法>>
第三種方法更麻煩:IntelliJ IDEA License Server本地搭建教程
④Taniey最喜歡的還是 Eclipse+PyDev,基本上開(kāi)發(fā)者想用的功能都有了,如果Eclipse 用得好,這個(gè)應(yīng)該也不是問(wèn)題。Taniey強(qiáng)烈推薦。
5、Python 的 Python Enhancement Proposals (PEPs),其中包括:pep8 的Python代碼風(fēng)格規(guī)范,如果要使用Python作項(xiàng)目建議 多看看這個(gè) pep8規(guī)范。對(duì)你的編碼風(fēng)格很有幫助。
借用 Tim Peters 的 Python之禪。參考網(wǎng)址>>
翻譯網(wǎng)上自己找,很多。
【寫(xiě)在***】
從C++到Python,Taniey越來(lái)越愛(ài)上這個(gè)強(qiáng)大的編程語(yǔ)言——Python,光是用Python來(lái)開(kāi)發(fā)的光陰就將近四年了,大多是視頻服務(wù)類(lèi)產(chǎn)品,用Python做接口??佣际敲罎L打挖了填填了再挖的,用Taniey的話(huà)來(lái)說(shuō)就是有BUG要上,沒(méi)有BUG制造BUG也要上。希望用他這些年的填坑經(jīng)驗(yàn)給同樣在Python世界里掙扎的人以茲鼓勵(lì)。
如果你也愿意分享你的故事,請(qǐng)加51CTO開(kāi)發(fā)者QQ交流群 627843829聯(lián)系群主小官,期待你精彩的故事!
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】