1. 程式人生 > >Python控制結構(If、While、For)

Python控制結構(If、While、For)

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 迴圈的表示式中建立的變數在迴圈終止後仍然存在,其存在週期為建立變數開始,直到所在函式閉合範圍結尾處終止。
 

總結:

  1. if條件分支、while、for迴圈內部會因為錯誤error或return語句被退出;
  2. while、for迴圈可通過contiune語句跳過本次迴圈;
  3. while、for迴圈可通過break語句退出迴圈;
  4. while、for迴圈可選else子句在非正常終止(break語句、return語句、錯誤error)時不會執行;
  5. for迴圈中迴圈條件iterable是一個可迭代物件(str、list、tuple、map、dict等)。