【问题描述】
输入一个学生的百分制成绩,按以下规则将百分制成绩转换成等级:90分及以上为A等级,70~89分为B等级,60~69为C等级,60分以下为D等级。
输入数据:
75
输出结果:
B
【题前思考】
根据问题描述,填写表3-1-5。
表3-1-5 问题分析
【解题思路】
成绩有A、B、C、D4个等级,即有4个条件,需要使用多分支来解决这个问题。成绩在90分及以上为A等级,成绩在70~89分为B等级,成绩在60~69分为C等级,成绩在60分以下为D等级,正确表示几个条件非常重要。
【程序代码】
x=int(input("请输入一个百分制成绩:\n"))
【代码分析】
①:判断输入的成绩是否在70~90分(包括70,不包括90)。elif是else if的缩写,表示“反之再判断”的意思。elif前面的if或其他elif判断失败之后,才会执行此处的判断,也就是说x>=90不成立时才会执行到这里判断后面的条件x>=70 and x<90。当条件成立时执行其后缩进的语句块print("B"),如果不成立执行后面的elif或else子句。
②:当前面列出的所有条件都不成立时执行else后面缩进的语句块print("D"),这是一个可选的子句,根据情况选用。
【技术全貌】
多分支结构语句的格式为:
if条件表达式1:
语句块1
elif条件表达式2:
语句块2
elif条件表达式3:
语句块3
……
else:
语句块n+1
其功能是先计算条件表达式1的值,如果条件表达式1成立,则执行后面的语句块1;如果条件表达式1不成立则判断条件表达式2,如果条件表达式2成立,则执行后面的语句块2;如果条件表达式2不成立则继续判断条件表达式3,如果条件表达式3成立,则执行后面的语句块3;依次类推,如果前面的条件表达式均不成立,则执行语句块n+1,如果没有else后面的语句块n+1,则什么也不执行,结束分支语句,结构流程图如图3-1-5所示。
图 3.1.5 多分支结构流程图
注意:
elif和else均不能单独使用,必须和if一起使用,并且要正确配对。
每一个if、elif、else后面都有冒号(:),均不能省略。
不管有多少个分支,都只能执行一个分支,或者一个也不执行,不能同时执行多个分支。