流程控制语句之条件语句(二)
2019-01-04 本文已影响16人
5f2a6061653d
if-elif语句
生活中经常需要进行多重判断,例如,考试成绩在90~100区间内,称为优秀;在80~90区间内,称为良好;在60~80区间内,称为及格;低于60的称为不及格。
在程序中,多重判断可以通过if-elif语句实现,其语法格式如下:
if 条件表达式1:
语句块1 # 当条件表达式1为True时,执行语句块1
elif 条件表达式2:
语句块2 # 当条件表达式2为True时,执行语句块2
...
elif 条件表达式n:
语句块n # 当条件表达式n为True时,执行语句块n
当执行该语句时,程序依次判断条件表达式的值,当出现某个表达式的值为True时,则执行其对应的语句块,然后跳出if-elif语句继续执行其后的代码。if-elif语句的执行流程,如下图所示。
if-elseif-else流程图
接下来演示if-elif语句的用法,如下所示。
1 score = 98
2 if 90 <= score <= 100:
3 print("优秀!")
4 elif 80 <= score < 90:
5 print("良好!")
6 elif 60 <= score < 80:
7 print("及格!")
8 elif 0 <= score < 60:
9 print("不及格!")
10 print("您的分数为%d"%score)
运行结果如下图所示。
运行结果.png
在上例中,程序依次判断表达式的值。程序先判断表达式90 <= score <= 100的结果为True,执行其后的语句块。最后,程序跳出if-elif语句,继续执行该语句后面的代码。
此外,if-elif语句后还可以使用else语句,用来表示if-elif语句中所有条件不满足时执行的语句块,其语法格式如下:
if 条件表达式1:
语句块1 # 当条件表达式1为True时,执行语句块1
elif 条件表达式2:
语句块2 # 当条件表达式2为True时,执行语句块2
...
else:
语句块n # 当以上条件表达式均为False时,执行语句块n
接下来演示if-elif-else语句的用法,如下例所示。
1 score = 150
2 if 90 <= score <= 100:
3 print("优秀!")
4 elif 80 <= score < 90:
5 print("良好!")
6 elif 60 <= score < 80:
7 print("及格!")
8 elif 0 <= score < 60:
9 print("不及格!")
10 else:
11 print("成绩有误!")
12 print("您的分数为%d"%score)
运行结果如下图所示。
运行结果.png
在上例中,if-else语句中所有的条件表达式结果都为False,因此程序将执行else语句块。
if语句嵌套
if语句嵌套是指if、if-else中的语句块可以是if或if-else语句,其语法格式如下:
# if语句
if 条件表达式1:
if 条件表达式2: # 嵌套if语句
语句块2
if 条件表达式3: # 嵌套if-else语句
语句块3
else:
语句块4
# if-else语句
if 条件表达式1:
if 条件表达式2: # 嵌套if语句
语句块2
else:
if 条件表达式3: # 嵌套if-else语句
语句块3
else:
语句块4
注意if语句嵌套有多种形式,在实际编程时需灵活使用。接下来演示if嵌套语句的使用,如下所示。
1 a, b, c = 8, 66, 6
2 if a >= b:
3 if a >= c:
4 print("a、b、c中最大的值为%d"%a)
5 else:
6 print("a、b、c中最大的值为%d"%c)
7 else:
8 if b >= c:
9 print("a、b、c中最大的值为%d"%b)
10 else:
11 print("a、b、c中最大的值为%d"%c)
运行结果如下图所示。
运行结果
在上例中,程序的功能是输出 a、b、c中最大的值。第2到6行为a大于等于b的情形,第7行到第11行为a小于b的情形。