一、应用场景
条件语句是Python中的一种控制流语句,它允许程序根据不同的条件来执行不同的代码块。
-
条件分支:在程序中,当需要根据某个条件来做出不同的决策时,可以使用条件分支语句。例如,在一个游戏中,根据玩家的得分,可能需要显示不同的消息或者触发不同的事件。
-
循环控制:在循环结构中,可以使用条件语句来控制是否继续或跳出循环。例如,在对一个列表进行遍历时,可以使用条件语句来判断遇到某个特定元素时是否跳出循环。
-
异常处理:在Python中,异常是一种常见的错误处理机制。通过使用条件语句,可以根据不同类型的异常来处理和捕获异常。例如,在尝试打开文件时,如果文件不存在,则会引发FileNotFoundError异常,可以使用条件语句来捕获该异常并执行相应操作。
二、if语句的使用
if语句是Python中最基本和常见的条件语句之一,它通常用于根据特定条件来执行代码块。以下是if语句的使用方法:
if condition:
# if block
else:
# else block
其中,condition
是要判断的条件表达式,如果它为True,则会执行if块中的代码,否则会执行else块中的代码。
在if语句中,else块是可选的,可以只有if块而没有else块。例如:
if score > 90:
print("优秀")
上面的代码只有一个if块,如果分数大于90,则会输出 "优秀"。
除了简单的True / False条件判断外,if语句还可以使用比较运算符(==,!=,>,<,>=,<=)和逻辑运算符(and,or,not)等来组合多个条件。例如:
1、判断国籍
if age >= 18 and nationality == "China":
print("您是中国成年人")
else:
print("对不起,您未满18岁或不是中国公民")
上述代码中,如果年龄大于或等于18岁且国籍是中国,将输出 "您是中国成年人",否则将输出 "对不起,您未满18岁或不是中国公民"。
三、if+elif语句使用
1、if+elif语句是Python中常用的组合条件语句,用于根据多个条件来执行不同的代码块。如:
if condition1:
# if block 1
elif condition2:
# elif block 2
elif condition3:
# elif block 3
else:
# else block
其中,condition1
是第一个要判断的条件表达式,如果它为True,则会执行if块中的代码;如果不是,则继续判断下一个条件表达式condition2
,如果它为True,则会执行elif块中的代码;如果所有条件都不为True,则会执行else块中的代码。
2、在if、elif语句中,可以有任意多个elif块,但只能有一个if块和一个else块。例如:
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
上面的代码中,如果分数大于等于90,则会输出 "优秀";如果分数大于等于80且小于90,则会输出 "良好";如果分数大于等于60且小于80,则会输出 "及格";如果分数小于60,则会输出 "不及格"。
为了方便理解,可以看下下面例子:
1、、将百分制成绩转换为等级制成绩
score = float(input('请输入成绩: '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('对应的等级是:', grade)
3、分支结构嵌套与代码扁平化
一般不推荐,提倡代码扁平化,嵌套结构的嵌套层次多了之后会严重的影响代码的可读性,所以能使用扁平化的结构时就不要使用嵌套。
嵌套:
"""
分段函数求值
3x - 5 (x > 1)
f(x) = x + 2 (-1 <= x <= 1)
5x + 3 (x < -1)
"""
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
else:
if x >= -1:
y = x + 2
else:
y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))
要是上段代码扁平化我们可以这样修正
"""
分段函数求值
3x - 5 (x > 1)
f(x) = x + 2 (-1 <= x <= 1)
5x + 3 (x < -1)
"""
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
elif x >= -1:
y = x + 2
else:
y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))
四、使用条件注意事项
在使用if、elif语句时,需要注意以下几点:
- 条件表达式可以是任何返回布尔值的表达式。
- 可以有任意多个elif块,但只能有一个if块和一个else块。
- 当一个条件为True时,程序将只执行该条件对应的代码块,并退出整个if语句。