6.3 if-elif-else语句
在网上购物时通常会有多种付款方式,用户可以从中选择一个。这是一种典型的多选一情况。在Python中,可以使用if-elif-else语句来表示这种情况。本节介绍if-elif-else语句的相关知识。
6.3.1 多分支结构
if-elif-else是一个多分支结构,是由if、elif和else共同构成的选择语句。它在if-else语句的基础上使用保留字elif进行扩展。当不满足if语句中指定的条件时,继续使用elif语句指定另一个或若干个条件进行判断。若仍然没有满足条件,则最后执行else语句。其语法格式如下:
其中,elif语句可以为多个。
【实例6-11】编写if-elif-else语句,对成绩分数进行判断。例如,当成绩大于或等于90时,输出“成绩优秀”;大于或等于80时,输出“成绩良好”;大于或等于70时,输出“成绩中等”;大于或等于60时,输出“成绩较差”,除此之外的分数输出“成绩糟糕”。代码如下:
6.3.2 执行流程
在执行if-elif-else语句时,先判断if语句中指定的条件,条件成立,执行if中的语句,执行完成后跳出整个if-elif-else语句,再执行if-elif-else语句以外的其他语句。如果条件不成立,就接着判断elif语句中指定的条件,若条件成立,则执行对应的语句,执行完成后跳过整个if-elif-else语句;反之,继续判断下一个elif语句中指定的条件。以此类推,直到判断完成所有的elif语句中指定的条件后,仍然没有满足条件,最后执行else语句,执行完成后执行if-elif-else语句以外的其他语句。if-elif-else语句的执行流程图如图6.9所示。
图6.9 if-elif-else语句的执行流程图
【实例6-12】不同的年龄会上不同的学,年龄及学段对应表如表6-2所示。
表6.2 年龄及学段对应表
表6-2中的信息可以利用if-elif-else语句实现。用户输入一个年龄,然后判断在哪个学段,并且最后始终输出一句话“过了今年你又大了一岁”。
(1)编写的代码如下:
代码的加粗部分是一个if-elif-else语句,最后一行语句为if-elif-else语句以外的其他语句。
(2)代码执行后,输入一个年龄,如8,符合该年龄段的对应的elif语句会被执行,最后一行语句也会被执行,执行结果如下:
年龄8满足了elif的6<=age<12条件,因此,执行了对应的语句print('你可以上小学了'),整个if-elif-else语句执行完成,继续执行if-elif-else以外的语句print('过了今年你又大了一岁')。
(3)假如,输入的年龄为2,执行结果如下:
由于年龄2没有满足if的条件,也没有满足elif的条件,所以直接执行else对应的语句print('你还没到上学年龄'),整个if-elif-else语句执行完成,继续执行if-elif-else以外的语句print('过了今年你又大了一岁')。