if condition:
若運算式的結果為 True , 也就是條件為真,其後縮排 (indentation) 的程式區塊 (block) 便會執行,而若運算式的結果為 False ,這樣一來條件就為假,程式會跳過縮排的程式區塊,沒有縮排的第一個陳述 (statement) 執行。
以下程式示範使用單一的 if 陳述
a = "h" b = "h" if a == b: print("Welcome to my world!") # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:cf03.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
程式的第 4 行
if a == b:
由於 a 及 b 兩個變數 (variable) 連到相同的物件 (object) ,所以條件為真, if 陳述後頭縮排的陳述便會執行。
if 可以跟關鍵字 else 連用,這樣一來, if 的條件為假時,程式跳過 if 陳述後頭縮排的程式碼,而去找 else 後頭縮排的程式碼來執行。
以下程式示範 if-else 陳述的使用
a = "h" b = "k" if a == b: print("Welcome to my world!") else: print("How do you do?") # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:cf04.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
此例中,由於第 4 行
if a == b:
由於變數 a 不等於變數 b ,所以程式會跳到執行第 6 行去執行 else 的部份
else: print("How do you do?")
if-else 也可以是巢狀 (nested) 的使用,例如
a = "h" b = "k" if a == "a": print("Yes!") else: if a == b: print("No!") else: print("What?") # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:cf05.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
所謂巢狀的 if-else 陳述就是形如第 4 到 10 行的地方
if a == "a": print("Yes!") else: if a == b: print("No!") else: print("What?")
這種形式其實是多重選擇, Python 利用另一個關鍵字 elif 使多重選擇的寫法較為簡單,如下例
a = "h" b = "k" if a == "a": print("Yes!") elif a == b: print("No!") else: print("What?") # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:cf06.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月
執行結果如下
if-elif-else 陳述中, else 可有可無,若加入 else 陳述, else 就會是以上皆非的預設選項。
中英文術語對照 | |
---|---|
選擇結構 | selection structure |
if 陳述 | if statement |
關鍵字 | keyword |
運算式 | expression |
條件 | condition |
縮排 | indentation |
區塊 | block |
陳述 | statement |
變數 | variable |
物件 | object |
參考資料
http://docs.python.org/py3k/reference/compound_stmts.html
http://docs.python.org/py3k/tutorial/controlflow.html
http://docs.python.org/py3k/reference/compound_stmts.html
http://docs.python.org/py3k/tutorial/controlflow.html
沒有留言:
張貼留言