if-else 语句的语法
Python 中 if-else 语句的语法如下:
if 布尔表达式:
else:
如果布尔表达式的计算结果为 TRUE,则执行 if 块内的语句;否则,执行 else 块内的语句。
if-else 语句的流程图
该流程图显示了如何使用 if-else 语句:

如果 expr 为 True,则执行 stmt1、stmt2、stmt3 块,然后默认流程继续执行 stmt7。但是,如果 expr 为 False,则运行 stmt4、stmt5、stmt6 块,然后默认流程继续。
上述流程图的 Python 实现如下:
if expr == True:
stmt1
stmt2
stmt3
else:
stmt4
stmt5
stmt6
stmt7
if-else 语句示例
让我们通过以下示例了解 if-else 语句的用法。这里,变量 age 可以取不同的值。如果表达式 age > 18 为真,则显示有资格投票的消息;否则显示没有资格投票的消息。以下流程图说明了此逻辑:

现在,我们来看一下上述流程图的 Python 实现:
age = 25
print("age: ", age)
if age >= 18:
print("有资格投票")
else:
print("没有资格投票")
执行此代码后,您将获得以下输出:
age: 25
有资格投票
为了测试 else 块,将年龄更改为 12,然后再次运行代码。
age: 12
没有资格投票
if-elif-else 语句
if-elif-else 语句允许您检查多个表达式是否为 TRUE,并在其中一个条件计算为 TRUE 时立即执行代码块。
与 else 块类似,elif 块也是可选的。但是,一个程序只能包含一个 else 块,而 if 块后面可以有任意数量的 elif 块。
if-elif-else 语句的语法
if 表达式1:
语句块
elif 表达式2:
语句块
elif 表达式3:
语句块
else:
语句块
if-elif-else 如何工作?
关键字 elif 是 else if 的缩写形式。它允许将逻辑排列在第一个 if 语句之后的 elif 语句级联中。如果第一个 if 语句的计算结果为 false,则将逐个计算后续 elif 语句,如果任何一个语句满足条件,则从级联中退出。
级联中的最后一个是 else 块,当所有前面的 if/elif 条件都失败时,该块就会出现。
示例
假设购买时有不同的折扣等级:
-
-
-
如果介于 1000 至 5000 之间,则为 5%
-
下面的流程图说明了这些条件:

我们可以用 if-else 语句编写上述逻辑的 Python 代码:
amount = 2500
print('金额 = ', amount)
if amount > 10000:
discount = amount * 20 / 100
else:
if amount > 5000:
discount = amount * 10 / 100
else:
if amount > 1000:
discount = amount * 5 / 100
else:
discount = 0
print('应付金额 = ', amount - discount)
设置金额来测试所有可能的情况:800、2500、7500 和 15000。输出将相应变化:
金额: 800
应付金额 = 800
金额: 2500
应付金额 = 2375.0
金额: 7500
应付金额 = 6750.0
金额: 15000
应付金额 = 12000.0
尽管代码可以完美运行,但如果您查看每个 if 和 else 语句中缩进的级别不断增加,如果还有更多条件,就会变得难以管理。
if-elif-else 语句示例
elif 语句使代码易于阅读和理解。以下是使用 if-elif-else 语句实现相同逻辑的 Python 代码:
amount = 2500
print('金额 = ', amount)
if amount > 10000:
discount = amount * 20 / 100
elif amount > 5000:
discount = amount * 10 / 100
elif amount > 1000:
discount = amount * 5 / 100
else:
discount = 0
print('应付金额 = ', amount - discount)
上述代码的输出如下:
金额: 2500
应付金额 = 2375.0