Python控制結構(If、While、For)
阿新 • • 發佈:2018-11-26
Python控制結構
條件分支
if語句
基本語法:
if bolean_exp1:
suite1
elif boolean_exp2:
suite2
elif boolean_expN:
suiteN
else:
else_suite
條件表示式:?:。
可以有0至多個elif語句,else語句是可選的。
當上一個分支不滿足條件時,就會進入下一分支繼續判斷是否滿足條件,當某個分支滿足時,會執行相應的suite語句,並退出if塊;如果沒有一個分支滿足,控制流會走完整個if塊(若有else子句,會執行else子句)並退出if塊。。
if…else語句可以寫成如下表達式:
exp1 if boolean_exp else exp2
如果boolean_exp為True,表示式結果為exp1,否則為exp2。
可以通過not操作符對boolean_exp取反操作。
避免陷阱:
n + 1 if boolean else 0
此處n + 1會被當作表示式exp1的一部分。
迴圈
while迴圈
基本語法:
while boolean_exp:
while_suite
else:
else_suite
顯而易見的是,python語言while迴圈有else分支。並且else分支是可選的。
只要boolean_exp始終為True,while迴圈就不會終止。
continue語句可以使while迴圈跳轉到起始處(忽略本次迴圈餘下語句)並重新評估boolean_exp的取值。
for 迴圈
基本語法1:
for exp in iterable:
for_suite
else:
else_suite
基本語法2:
for (exp1, exp2) in iterable: # 左側型別可以是list等。
#序列拆分,右側iterable如dict,通過呼叫dict.items()方法;左側可以是多個變數或者變數序列。
for_suite
else:
else_suite
內涵形式(建立list、tuple等的一種表示式):
[exp for exp in iterable if boolean_exp] #建立list
通常,exp是一個或多個變數或者是一個變數序列(元組形式)。
for迴圈同while迴圈一樣都有一個可選的else子句。
continue語句可以使for迴圈跳轉到起始處(忽略本次迴圈餘下語句)並進行下一次迭代。
注意:for 迴圈的表示式中建立的變數在迴圈終止後仍然存在,其存在週期為建立變數開始,直到所在函式閉合範圍結尾處終止。
總結:
- if條件分支、while、for迴圈內部會因為錯誤error或return語句被退出;
- while、for迴圈可通過contiune語句跳過本次迴圈;
- while、for迴圈可通過break語句退出迴圈;
- while、for迴圈可選else子句在非正常終止(break語句、return語句、錯誤error)時不會執行;
- for迴圈中迴圈條件iterable是一個可迭代物件(str、list、tuple、map、dict等)。