什么是“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 中,关键字 elif 是“否则如果”的缩写。 使用 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