常說(shuō),,見字如見人,。那么程序員也同樣如此,第一反應(yīng)程序員的就是他的代碼是否美觀,。畢竟代碼不僅是要實(shí)現(xiàn)東西,,更重要的是給領(lǐng)導(dǎo)看的,如果代碼一踏糊涂,就是技術(shù)在過(guò)硬也就那樣,,作為領(lǐng)導(dǎo)者會(huì)認(rèn)為你工作不嚴(yán)謹(jǐn),。就比如一筆好字,給人感覺(jué)是完全不同的,,在面試的時(shí)候也是非常重要的,,代碼寫的規(guī)范美觀,HR會(huì)在無(wú)形之中給你加分的,! 第 1 章 用 Pythonic 方式來(lái)思考第 5 條:了解切割序列的方法 1.不要寫多余的代碼:當(dāng) start 索引為 0,,或 end 索引為序列長(zhǎng)度時(shí),應(yīng)該將其省略,。
3.對(duì) list 賦值的時(shí)候,如果使用切片操作,,就會(huì)把原列表中處在相關(guān)范圍內(nèi)的值替 換成新值,,即便它們的長(zhǎng)度不同也依然可以替換 第 8 條:不要使用兩個(gè)以上的表達(dá)式的列表推導(dǎo) 列表推導(dǎo)支持多級(jí)循環(huán),每一級(jí)循環(huán)也支持多項(xiàng)條件,。超過(guò)兩個(gè)表達(dá)式的列表推導(dǎo)是很難理解的,,應(yīng)該盡量避免。 可以使用兩個(gè)條件,、兩個(gè)循環(huán)或 一個(gè)條件搭配一個(gè)循環(huán),。如果要寫的代碼比這還復(fù)雜,那就應(yīng)該使用普通的 if 和 for 語(yǔ)句,,并編寫輔助函數(shù),。 第 9 條:用生成器表達(dá)式來(lái)改寫數(shù)據(jù)量較大的列表推導(dǎo) 當(dāng)輸入的數(shù)據(jù)量較大時(shí),列表推導(dǎo)可能會(huì)因?yàn)檎加锰鄡?nèi)存而出問(wèn)題,。為了解決這個(gè)問(wèn)題,,Python 提供了生成器表達(dá)式(generator expression),它是對(duì)列表 推導(dǎo)和生成器的一種泛化(generalization),。 把實(shí)現(xiàn)列表推導(dǎo)所用的那種寫法放在一對(duì)圓括號(hào)中,,就構(gòu)成了生成器表達(dá)式。此時(shí)立刻返回一個(gè)迭代器,,逐次調(diào)用內(nèi)置的 next 函數(shù),,以這個(gè)迭代器為參數(shù),,輸出一個(gè)值,,做循環(huán)輸出即可。 3.11 第 11 條:用 zip 函數(shù)同時(shí)遍歷兩個(gè)迭代器
第 12 條:不要在 for 和 while 循環(huán)后面寫 else 模塊 結(jié)果: 第 2 章 函數(shù)第 14 條:盡量用異常來(lái)表示特殊情況,,而不要返回 None 第 17 條:在參數(shù)上面迭代時(shí),,要多加小心 迭代器只能欸遍歷一次,如果多次遍歷則會(huì)出現(xiàn)意想不到的錯(cuò)誤,。 (列表可以被多次迭代)
第 20 條:用 None 和文檔字符串來(lái)描述具有動(dòng)態(tài)默認(rèn)值的參數(shù) 如果參數(shù)的實(shí)際默認(rèn)值是可變類型(mutable),,那就一定要記得用 None 作為形式 上的默認(rèn)值,。(即形參值設(shè)為 None) 第 22 條:盡量用輔助類來(lái)維護(hù)程序的狀態(tài),而不要用字典和元組
第 25 條:用 super 初始化父類
3.總是應(yīng)該使用內(nèi)置的 super 函數(shù)來(lái)初始化父類。 謝謝閱讀,!你有從中學(xué)到東西嘛,?
|
|
來(lái)自: flyk0tcfb46p9f > 《AI》