細數10個隱藏在Python中的彩蛋

阿橙發表於2016-11-18

1、使用re.DEBUG檢視正規表示式的匹配過程

正規表示式是Python的一大特色,但是除錯起來會很痛苦,很容易得出一個bug。幸運的是,Python可以列印出正規表示式的解析樹,通過re.debug來顯示re.compile的完整過程。

一旦你理解了語法,你就可以發現你的錯誤。在這裡我們可以看到[/font]忘了去除[]

2、enumerate函式用於遍歷列表中的元素以及它們的下標

3、對預設實參要多加小心

相反,你應該使用一個標記值表示“無定義”,來替換“[]”。

4、對於C系的那些更喜歡括號而不是縮排的開發者,你只需使用以下一條命令:

from __future__ import braces

5、切片操作中的tricks

a = [1,2,3,4,5] >>> a[::2] [1,3,5]

特殊的例子是x[::-1],它可以將列表反轉

>>> a[::-1] [5,4,3,2,1]

6、裝飾器

裝飾器實現了在一個函式中呼叫其它函式或方法來增加功能性,從而修改引數或結果等,在函式定義前加上裝飾器,只需一個“@”符號。

以下示例顯示了一個print_args裝飾器的用法:

7、取參的trick

你可以用*或者**來取出列表或字典作為函式引數

8、Exception else語句

使用“else”比在“try”語句中新增多餘的程式碼更好,因為它避免了意外獲取不被try語句保護的異常…除了宣告之外。

9、巢狀列表推導式和生成器表示式

[(i,j) for i in range(3) for j in range(i) ]    
((i,j) for i in range(4) for j in range(i) )

這些語句可以取代大量的巢狀迴圈程式碼塊

10、主要句式

import this

下面讓我們再誦讀一遍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.

相關文章