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
沒有留言:
張貼留言