什麼是 'else' 和 'elif' 陳述式?
如果您想要讓程式在測試運算式為 False
時也執行一段程式碼,該怎麼做? 或者,如果您想要包含另一個測試運算式,該怎麼做? Python 具有其他關鍵字,可用來製作更複雜的 if
陳述式,即 else
和 elif
。 將 if
、else
和 elif
一起使用時,您將可撰寫複雜的程式而執行多個測試運算式和陳述式。
使用 else
工作
您知道當您使用 if
陳述式時,只有在測試運算式為 True
時,程式主體才會執行。 若要新增更多會在測試運算式為 False
時執行的程式碼,您需要新增 else
陳述式。
讓我們從上一節調整範例:
a = 27
b = 93
if a >= b:
print(a)
在此範例中,如果 a
不大於或等於 b
,則不會發生任何動作。 假設您想要改為在測試運算式為 False
時列印 b
:
a = 27
b = 93
if a >= b:
print(a)
else:
print(b)
輸出:93
如果測試運算式為 False
,則會略過 if
陳述式主體中的程式碼,且程式會從 else
陳述式繼續執行。 if/else
陳述式的語法一律為:
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
使用 elif
工作
在 Python 中,關鍵字 elif
是 else if 的縮寫。 使用 elif
陳述式可讓您將多個測試運算式新增至程式。 這些陳述式會依撰寫的循序執行,因此只有在第一個 if
陳述式為 False
時,您的程式才會進入 elif
陳述式。 例如:
a = 27
b = 93
if a <= b:
print("a is less than or equal to b")
elif a == b:
print("a is equal to b")
輸出:a is less than or equal to b
在此變化中,程式碼區塊中的 elif
陳述式不會執行,因為 if
陳述式是 True
。
if/elif
陳述式的語法為:
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
結合 if
、elif
和 else
陳述式
您可以結合 if
、elif
和 else
陳述式,以建立具有複雜條件式邏輯的程式。 請記住,只有在 if
條件為 false
時, 才會執行 elif
陳述式。 另請注意,if
區塊只能有一個 else
區塊,但可以有多個 elif
區塊。
讓我們看看具有 if
、elif
和 else
陳述式的範例:
a = 27
b = 93
if a < b:
print("a is less than b")
elif a > b:
print("a is greater than b")
else:
print ("a is equal to b")
這三種陳述式全部使用的程式碼區塊具有下列語法:
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
else:
# statement(s) to be run
使用巢狀條件式邏輯
Python 也支援巢狀條件式邏輯,這表示您可以內嵌 if
、elif
和 else
陳述式,以建立更複雜的程式。 若要內嵌條件,請縮排內部條件,相同縮排層級的所有項目都會在相同的程式碼區塊中執行:
a = 16
b = 25
c = 27
if a > b:
if b > c:
print ("a is greater than b and b is greater than c")
else:
print ("a is greater than b and less than c")
elif a == b:
print ("a is equal to b")
else:
print ("a is less than b")
這段程式碼會產生輸出 a is less than b
。
巢狀條件式邏輯應遵循與每個程式碼區塊內的一般條件式邏輯相同的規則。 以下是一個語法範例:
if test_expression:
# statement(s) to be run
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
else:
# statement(s) to be run