1、條件陳述式
2、迴圈語句
3、迭代器
4、列表解析
5、產生器運算式
1、條件陳述式
最簡單的條件陳述式:
if expression:
expr_true_suite
如上,if是關鍵字,expression是條件運算式,條件運算式支援多重條件判斷,可以用布爾操作符and、or和not串連,expr_true_suite是代碼塊,expression為true時執行,代碼塊如果只有一行,上面的整個條件陳述式便可全部寫到一行,但可讀性差。
帶elif和else的條件陳述式:
if expression1:
expr1_true_suite
elif expression2:
expr2_true_suite
elif expressionN:
exprN_true_suite
else:
none_of_the_above_suite
如上,文法同其它語言的條件陳述式類似,elif和else是可選的。
條件運算式實現三元操作符:
在C/C++中,三元操作符如下(E成立時執行X,否則執行Y)——
E ? X : Y
python類比的三元操作符——
(E and [X] or [Y])[0]
python三元操作符的實現——
X if E else Y
2、迴圈語句
while迴圈:
while expression:
suite_to_repeat
for迴圈:
for iter_var in iterable:
suite_to_repeat
for逐一查看可迭代對象iterable的所有元素,iter_var被設定為可迭代對象的當前元素。for迴圈可用於序列類型,包括字串、列表及元組,也可用於迭代器類型,迭代器對象有一個next()方法,調用後返回下一個條目,所有條目迭代完成後,迭代器引發一個StopIteration異常告訴程式迴圈結束,for語句在內部調用next()並捕獲異常。
break、continue、pass:
break語句結束當前迴圈,跳轉到下條語句。continue語句終止當前迴圈,嘗試下一次迭代。pass語句表示不做任何事情。
迴圈中的else:
在迴圈中也可以有else,這與C/C++不同,else字句只在迴圈正常完成後才會執行,也就是說break語句會跳過else塊。
3、迭代器
迭代器為類序列對象提供了一個類序列的介面,更巧妙的是,還可以迭代不是序列但表現出序列行為的對象,例如字典的key,一個檔案的行等等。對一個對象調用iter()就可以得到它的迭代器,一個實現了__iter__()和next()方法的類也可以作為迭代器使用。itertools是與迭代器相關的一個模組。
4、列表解析
先來看一下列表解析的文法:
[expr for iter_var in iterable if cond_expr]
這個語句的核