Logo

郎哥编程

Pyhton多重条件结构

2020-08-29 213

简单条件结构用于实现需要判断的情况,它以一个逻辑条件成立与否为条件,决定一个操作的执行或不执行,或执行两个不同的操作。但在某些情况下,需要检查多个条件,解决这种情况可用多重条件结构、本课体介绍多重条件结构。

多种条件的判断

在进行条件判断时,常常会遇到一种情况,如果条件的值为真,则执行某些操作,否则,进一步进行条件判断,执行其它操作。

例如:学生成绩分段输出问题。

01.png

根据学生的考试分数分别输出优(90-100分)、良(80-90分)、中(60-80分)、差(小于60分)四个等级,需要逐级判断学生的考试分数在那个分数段内,并输出相应的等级。在编程时遇到此种情况,就可使用多重条件结构解决。

02.png

多重条件结构在进行条件判断时,首先会判断第一个条件,如果第一个条件的值为真,则执行某些操作,否则,进一步进行条件判断,执行其它操作。

多重条件结构实际上是if-else结构的另一种形式if-elif-else,这种形式也称为阶梯式,当有多个分支选择时,可采用多重条件结构。

03.png

多重if结构从上到下依次对条件进行判断,当条件满足时就执行该条件后面的分支语句块,并跳过其它的条件判断;若没有条件满足,则执行最后的else分支语句,如果没有else分支语句,则直接执行该结构后面的语句。

多重条件判断案例程序

 04.png

 

问题分析:

程序的主要功能是对考生的考试成绩进行评定,成绩评定分成优、良、中、差四个档次。成绩大于等于90分为优,大于等于80分小于90分为良,大于等于60分小于80分为中,成绩小于60分为差。

05.png

用户输入考试成绩后,程序需要对考试成绩进行多次判断,如果考试成绩在90分至100分之间,用print函数输出“优”;如果考试成绩在80分至90分之间,用print函数输出“良”;如果考试成绩在60分至80分之间,用print函数输出“中”;如果考试成绩在60分以下,用print函数输出“差”。

由问题分析绘制流程图:

06.png

流程图用到了多个条件判断,如果条件的值为真,则执行某些操作,否则,进一步进行条件判断,执行其它操作。流程图中需要逐级判断输入的考试成绩在哪个分数段内,并输出相应的成绩等级。

案例程序代码及解读

启动Python IDLE,在IDLE的Shell窗口新建一个代码文件,在新建的代码编辑窗口编写代码。

07.png

代码解读

在上面的代码中。如果用户输入80,即score变量的值为80。程序会先判断score的值是否在90至100范围内,如果不在,程序会继续向下判断score的值是否在80至90范围内,因为当前score的值为80,80包含在80至90范围内,条件满足,程序执行语句:

print('良')

后面的elif以及else语句不再执行。

如果用户输入50,即score变量的值为50。因为50不在条件判断的任何数值范围内,也就是所有条件判断都不满足。在这种情况下,程序执行else内的语句:

print('差')

代码编写完成,把代码保存到D盘的Python目录或其它目录,保存的文件名称是score.py。

08.png

从输出结果可以看出:用户输入80分,程序会执行输出良的语句,其它语句都不执行;用户输入50分,程序会执行else内的语句,其它语句都不执行。

内容小结

简单条件结构只有两条执行路径,当满足条件时执行一条路径,不满足条件时执行另一条路径。同简单条件结构相比,多重条件结构可以有多条执行路径,每条执行路径对应不同的条件判断,程序按顺序对不同的条件进行判断,当条件满足时,执行该条件下的语句,语句执行完成,跳出整个判断结构,余下的条件判断语句不再执行。当所有条件都不满足时,执行else下的语句。

5、 上机操作

编写一个程序,从键盘输入一个英文字母或数字字符,输出该字符的类别。请使用多重条件结构判别键盘输入字符的类别。

提示:类别可根据ASCII码表来判断,ASCII码值大于等于48并且小于等于57时,为数字字符,ASCII码值大于等于65并且小于等于90时,为大写字母字符;ASCII码值大于等于97并且小于等于122时,为小写字母字符。

ASCII码是一套编码体系,主要是对英文字母、数字及其一些字符进行编码。我们常用的计算机键盘上的每个按键表示的字符都对应着一个ASCII编码。一个ASCII编码就是一个数字,用户在键盘上敲入一个字符后,键盘输入程序会读取这个字符的ASCII码,存入到计算机。当程序需要显示输入的字符时,显示程序会根据字符的ASCII码,从点阵字库找到与ASCII码对应的点阵图形,最后输出到屏幕上。

下面是一些字符的ASCII编码范围:

英文大写字母的编码范围:65~90;

英文小写字母的编码范围:97~122;

数字字符的编码范围:48~57

在Python程序中,要获取用户输入的ASCII码,可以使用下面的语句:

# 用户输入字符
c = input("请输入一个字符: ")
c = ord(c)

上面的代码使用input函数获取用户输入的字符,并赋值给字符变量c,然后再使用ord函数把字符变量c转换为ASCII码,此时变量c的内容为该字符的ASCII码。

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论