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


















 
 
 
 
 
 
 