1伟恶、使用re.DEBUG查看正則表達(dá)式的匹配過程
正則表達(dá)式是Python的一大特色碴开,但是調(diào)試起來會(huì)很痛苦,很容易得出一個(gè)bug博秫。幸運(yùn)的是潦牛,Python可以打印出正則表達(dá)式的解析樹,通過re.debug來顯示re.compile的完整過程挡育。
一旦你理解了語法巴碗,你就可以發(fā)現(xiàn)你的錯(cuò)誤。在這里我們可以看到[/font]忘了去除[]
2即寒、enumerate函數(shù)用于遍歷列表中的元素以及它們的下標(biāo)
3橡淆、對(duì)默認(rèn)實(shí)參要多加小心
相反,你應(yīng)該使用一個(gè)標(biāo)記值表示“無定義”母赵,來替換“[]”逸爵。
4、對(duì)于C系的那些更喜歡括號(hào)而不是縮進(jìn)的開發(fā)者凹嘲,你只需使用以下一條命令:
from __future__ import braces
5师倔、切片操作中的tricks
a = [1,2,3,4,5]
>>> a[::2]
[1,3,5]
特殊的例子是x[::-1],它可以將列表反轉(zhuǎn)
>>> a[::-1]
[5,4,3,2,1]
6周蹭、裝飾器
裝飾器實(shí)現(xiàn)了在一個(gè)函數(shù)中調(diào)用其它函數(shù)或方法來增加功能性趋艘,從而修改參數(shù)或結(jié)果等,在函數(shù)定義前加上裝飾器谷醉,只需一個(gè)“@”符號(hào)致稀。
以下示例顯示了一個(gè)print_args裝飾器的用法:
7、取參的trick
你可以用*或者**來取出列表或字典作為函數(shù)參數(shù)
8俱尼、Exception else語句
使用“else”比在“try”語句中添加多余的代碼更好抖单,因?yàn)樗苊饬艘馔猥@取不被try語句保護(hù)的異常…除了聲明之外。
9矛绘、嵌套列表推導(dǎo)式和生成器表達(dá)式
[(i,j) for i in range(3) for j in range(i) ]
((i,j) for i in range(4) for j in range(i) )
這些語句可以取代大量的嵌套循環(huán)代碼塊
10耍休、主要句式
import this
下面讓我們?cè)僬b讀一遍Python之禪的要義(The Zen of Python, by Tim Peters):
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.