什麼是 'else' 和 'elif' 陳述式?

已完成

如果您想要讓程式在測試運算式為 False 時也執行一段程式碼,該怎麼做? 或者,如果您想要包含另一個測試運算式,該怎麼做? Python 具有其他關鍵字,可用來製作更複雜的 if 陳述式,即 elseelif。 將 ifelseelif 一起使用時,您將可撰寫複雜的程式而執行多個測試運算式和陳述式。

使用 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 中,關鍵字 elifelse 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

結合 ifelifelse 陳述式

您可以結合 ifelifelse 陳述式,以建立具有複雜條件式邏輯的程式。 請記住,只有在 if 條件為 false 時, 才會執行 elif 陳述式。 另請注意,if 區塊只能有一個 else 區塊,但可以有多個 elif 區塊。

讓我們看看具有 ifelifelse 陳述式的範例:

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 也支援巢狀條件式邏輯,這表示您可以內嵌 ifelifelse 陳述式,以建立更複雜的程式。 若要內嵌條件,請縮排內部條件,相同縮排層級的所有項目都會在相同的程式碼區塊中執行:

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