python程序的书写特点_不一样的Python代码写法,让你写出一手漂亮的代码
Python語(yǔ)言這么火,有很多同學(xué)是從其他語(yǔ)言轉(zhuǎn)行過(guò)來(lái)的(比如c++,java語(yǔ)言),多多少少寫(xiě)代碼的時(shí)候也會(huì)受其他語(yǔ)言的影響!而對(duì)于剛開(kāi)始學(xué)語(yǔ)言的小白同學(xué)來(lái)說(shuō),解決問(wèn)題的思路有的時(shí)候會(huì)比較單一,其實(shí)Python有很多靈活的解法,今天通過(guò)這7招,帶你寫(xiě)出一手漂亮的code!
打印index
對(duì)于一個(gè)列表,或者說(shuō)一個(gè)序列我們經(jīng)常需要打印它的index,一般傳統(tǒng)的做法或者說(shuō)比較low的寫(xiě)法:
更優(yōu)雅的寫(xiě)法是多用enumerate
兩個(gè)序列的循環(huán)
我們會(huì)經(jīng)常對(duì)兩個(gè)序列進(jìn)行計(jì)算或者處理,比較low的方法是用下標(biāo)去循環(huán)處理
更優(yōu)雅一點(diǎn)的方法:用zip輕松搞定
有沒(méi)有更優(yōu)雅的方法呢,比如如果兩個(gè)序列有10000的長(zhǎng)度,當(dāng)然有的用izip
當(dāng)然izip還是Py2.x時(shí)代的產(chǎn)物,現(xiàn)在Py3.6里面默認(rèn)zip都是izip了!
交換變量
多個(gè)變量之間的交換,相信很多有c,c++語(yǔ)言基礎(chǔ)的同學(xué)對(duì)這個(gè)再熟悉不過(guò)了,比如我們經(jīng)典的冒泡排序,就會(huì)用這一招,看看比較傳統(tǒng)的做法:
更優(yōu)雅的做法是:
字典的讀取
字典是我們經(jīng)常使用的數(shù)據(jù)結(jié)構(gòu),對(duì)于字典的訪問(wèn)和讀取,如果我們的讀取的字典的key為空怎么辦,一般我們需要一個(gè)缺省值,菜鳥(niǎo)的寫(xiě)法:
比較優(yōu)雅的做法是:
巧妙的利用了字典get的用法,如果字典里面沒(méi)有Susan這個(gè)key,則用unknow來(lái)表示缺省值!
循環(huán)查找
我們經(jīng)常會(huì)在一個(gè)大的循環(huán)中作搜索業(yè)務(wù),比如從一個(gè)文件中搜索關(guān)鍵字,比如從文件名列表中查找一些特殊的文件名,想當(dāng)然的寫(xiě)法如下:
更優(yōu)雅的寫(xiě)法:上面的寫(xiě)法是傳統(tǒng)的c,c++寫(xiě)法,Python里面有更簡(jiǎn)潔的寫(xiě)法:
文件讀取查找
通常來(lái)說(shuō),我們要打開(kāi)一個(gè)文件,然后對(duì)文件的內(nèi)容進(jìn)行循環(huán)讀取和處理,菜鳥(niǎo)的寫(xiě)法如下:
更優(yōu)雅的寫(xiě)法:
關(guān)于鎖的寫(xiě)法
對(duì)于并發(fā)操作尤其是多線程的操作,我們對(duì)同一塊內(nèi)存進(jìn)行讀寫(xiě)操作的時(shí)候,通常我們都加鎖保護(hù)的,想當(dāng)然的寫(xiě)法如下:
上面這樣的寫(xiě)法我自己寫(xiě)了很多年,覺(jué)得沒(méi)有啥問(wèn)題啊,后來(lái)遇到下面的寫(xiě)法,瞬間膜拜了!
更優(yōu)雅的寫(xiě)法:
成長(zhǎng)離不開(kāi)與優(yōu)秀的同伴共同交流,如果你需要好的學(xué)習(xí)環(huán)境,好的學(xué)習(xí)資源,這里歡迎每一位熱愛(ài)Python的小伙伴,Python學(xué)習(xí)圈
結(jié)論:
上面這7招看起來(lái)很普通,但是深刻的理解,發(fā)現(xiàn)其實(shí)就是Python一貫倡導(dǎo)的Pythonic風(fēng)格的代碼,簡(jiǎn)潔而優(yōu)美!
總結(jié)
以上是生活随笔為你收集整理的python程序的书写特点_不一样的Python代码写法,让你写出一手漂亮的代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Epic 喜加二:《密林传奇》+《沉默年
- 下一篇: Oracle 中的Userenv()(s