Python if-else语句
除了使用 if 语句之外,还可以选择性地使用else关键字。如果布尔表达式(在if语句中)不为真,则提供一个备用的语句块来执行。该流程图展示了else块的使用方式。
如果条件expr为真,则执行语句块stmt1、stmt2、stmt3,然后默认流程继续执行stmt7。然而,如果条件expr为假,则执行语句块stmt4、stmt5、stmt6,然后默认流程继续执行。
语法
上述流程图的Python实现如下所示−
if expr==True:
stmt1
stmt2
stmt3
else:
stmt4
stmt5
stmt6
Stmt7
示例
让我们通过以下示例了解 else 子句的用法。变量 age 可以取不同的值。如果表达式 “age > 18” 为真,则显示消息“你有资格投票”,否则应显示不具备资格的消息。以下流程图说明了这个逻辑。
它的Python实现非常简单。
age=25
print ("age: ", age)
if age>=18:
print ("eligible to vote")
else:
print ("not eligible to vote")
开始时,将整数变量age
设置为25。
然后使用带有age>18
表达式的 if 语句,后面加上”:”以开始一个代码块;如果”age>=18″为真,则该代码块将执行。
为了提供 else 代码块,使用”else:”,随后缩进的代码块中包含 not eligible 的消息将在”age>=18″为假时执行。
执行此代码后,你将得到以下结果 –
age: 25
eligible to vote
为了测试 else 块,将 age 改为12,然后再次运行代码。
age: 12
not eligible to vote
Python elif语句
elif语句允许您检查多个表达式是否为TRUE,并在其中一个条件评估为TRUE时执行一块代码。
与else语句类似,elif语句是可选的。但与else不同的是,else语句最多只能有一条语句;而在if后面可以有任意数量的elif语句。
语法
if expression1:
statement(s)
elif expression2:
statement(s)
elif expression3:
statement(s)
else:
statement(s)
示例
让我们通过以下示例来了解elif的工作原理。
在早期示例中使用的折扣结构被修改为不同的折扣档次 –
- 超过10000的金额享受20%的折扣
-
5-10000之间的金额享受10%的折扣
-
1到5000之间的金额享受5%的折扣。
-
当金额小于1000时,不享受折扣
以下流程图说明了这些条件 –
示例
我们可以使用Python代码来实现上述逻辑,使用 if-else 语句-
amount = int(input('Enter 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:
dicount = 0
print('amount: ',amount - discount)
虽然代码可以正常工作,但如果你看一下每个if和else语句的缩进级别不断增加,如果还有更多的条件,就会变得难以管理。
elif 语句使代码易于阅读和理解。
elif 是”else if”的缩写。它允许在第一个if语句之后以 elif 语句的级联方式安排逻辑。如果第一个 if 语句评估为假,后续的elif语句将按顺序逐个评估,并在满足任何一个条件时跳出级联。
级联中的最后一个是 else 块,在所有前面的if/elif条件都失败时起作用。
amount = 800
print('amount = ',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('payable amount = ',amount - discount)
将 amount 设定为测试所有可能的情况:800、2500、7500和15000。相应地,输出也会有所不同 –
amount: 800
payable amount = 800
amount: 2500
payable amount = 2375.0
amount: 7500
payable amount = 6750.0
amount: 15000
payable amount = 12000.0
嵌套的if语句
在某些情况下,你可能希望在一个条件得到满足之后再检查另一个条件。在这种情况下,你可以使用嵌套的if语句。
在嵌套的if语句中,你可以在另一个if语句中使用if…elif…else语句。
语法
嵌套的if…elif…else语句的语法将是这样的 –
if expression1:
statement(s)
if expression2:
statement(s)
elif expression3:
statement(s)3
else
statement(s)
elif expression4:
statement(s)
else:
statement(s)
示例
现在让我们来看一个Python代码来了解它是如何工作的−
# !/usr/bin/python3
num=8
print ("num = ",num)
if num%2==0:
if num%3==0:
print ("Divisible by 3 and 2")
else:
print ("divisible by 2 not divisible by 3")
else:
if num%3==0:
print ("divisible by 3 not divisible by 2")
else:
print ("not Divisible by 2 not divisible by 3")
执行上述代码时,会产生以下 输出 。
num = 8
divisible by 2 not divisible by 3
num = 15
divisible by 3 not divisible by 2
num = 12
Divisible by 3 and 2
num = 5
not Divisible by 2 not divisible by 3