什么是“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
是“否则如果”的缩写。 使用 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