1
Python编程从入门到实践
1.8.2.3 4.2.3 多分支结构
4.2.3 多分支结构

双分支结构只能根据条件的True和False决定处理两个分支中的一支。当实际处理的问题有多种条件时,就要用到多分支结构。多分支结构用if…elif语句实现。

1.if…elif语句的格式

2.功能

先判断表达式1的值,若结果为True,则执行语句序列1;若结果为False,再判断表达式2的值,若结果为True,则执行语句序列2;若结果为False,再判断表达式3的值;……;若所有表达式的值都为False,则执行语句序列n+1。程序流程图如图4-13所示。

图4-13 if…elif语句的流程图

3.说明

①省略号表示elif语句块可以根据实际需要出现多次。

②不管有几个分支,程序执行了一个分支以后,其余分支不再执行。

③当多分支中有多个表达式同时满足条件时,则只执行第一条与之匹配的语句。

④有时对缺省情况,不需要采取明显的动作,在这种情况下,可以把该结构末尾的else省略掉。当然,也可以用它来检查错误,捕获“不可能”条件。

【例4.8】输入一个学生成绩,当成绩≥90时,输出“Very good”;当80≤成绩<90时,输出“Good”;当60≤成绩<80时,输出“Passed”;当成绩<60时,输出“Failed”。

问题分析:根据学生成绩分别落入不同的分数段(4种),从而输出不同的评语。这是一个具有四路分支的问题。

程序如下:

运行结果如图4-14所示。

图4-14 运行结果

说明:程序运行4次,分别输入75,86,95和55,输出分别为Passed,Good,Very good和Failed。

【例4.9】某商店售货,按购买货物的款数多少分别给予不同的优惠折扣:

购货不足250元的,没有折扣;

购货满250元,不足500元的,折扣5%;

购货满500元,不足1000元的,折扣7.5%;

购货满1000元,不足2000元的,折扣10%;

购货满2000元的,折扣15%。

要求根据输入的购买货物的款数,按照不同的折扣,计算输出的实际付款款数。

程序如下:

运行结果如图4-15所示。

图4-15 运行结果