前面学习了简单条件结构,简单条件结构用于实现单个条件判断的情况,它以一个条件判断(或真或假)成立与否为条件,决定一个操作的执行或不执行,或执行两个不同的操作。但在某些情况下,需要检查多个条件,解决这种情况可用多重条件结构来实现。

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

多重条件结构在进行条件判断时,首先会判断第一个条件,如果第一个条件的值为真,则执行某些操作,否则,进一步进行条件判断,执行其它操作。多重条件结构实际上是if-else结构的另一种形式if-elif-else,这种形式也称为阶梯式,当有多个分支选择时,可采用多重if结构。

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

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

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

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

在流程图的判断符号框内,需要对两个条件进行判断,判断score是否在一个数值范围内。

在我们学过的数学中,表示一个数值的范围时,经常用不等式来表述,假设一个数值取值范围为0到100(包括0和100),设该数值为x,不等式0≤x≤100给出了x的取值范围。在Python语言中,这个不等式只能分解为0<=x和x<=100两个关系表达式,然后用逻辑运算符进行连接。

逻辑运算符可以连接两个关系表达式,用于解决多个关系表达式的组合判断问题,返回的运算结果为逻辑值。Python语言常用的逻辑运算符有and和or,and和or全部小写,and和or可以连接两个关系表达式,并返回逻辑值。使用逻辑运算符的表达式也称为逻辑表达式。

and是逻辑与运算符,它的运算规则是当and连接的两个关系表达式都为真(True)时,and运算返回的结果是真(True),否则and运算返回的结果是假(False)。

要判断学生的考试成绩是否在90至100范围内,可以使用and逻辑与运算符连接两个关系表达式来完成条件判断。假如考试成绩用变量score表示,下面的语句可以判断score是否在90至100范围内。

当score的值在90至100范围内时,上面语句的运算结果为真(True)。因为and运算符两边的关系表达式的运算结果都为真(True);当score的值不在90至100范围内时,上面语句的运算结果为假(False)。因为and运算符两边的关系表达式的运算结果都为假(False),或有一个关系表达式的运算结果为假(False)。or是逻辑或运算符,它的运算规则是:连接的两个关系表达式只要有一个为真(True),or运算返回的结果就是真(True),否则or运算返回的结果是假(False)。

例如语文和数学成绩只要有一门大于等于90分,就可以评上学习小标兵,可以使用or逻辑或运算符连接两个关系表达式来完成条件判断。假如语文成绩用变量a表示,数学成绩用变量b表示,下面的语句可以判断一个学生是否达到学习小标兵资格。

当a的值或b的值有一个大于等于90时,上面语句的运算结果为真(True)。因为or运算符两边的关系表达式只要有一个为真,逻辑表达式返回的运算结果就为真(True)。只有a和b的值都小于90时,逻辑表达式返回的运算结果才为假(False)。了解和掌握了逻辑运算符,阿萌开始编写代码了。他启动Python IDLE,在IDLE的Shell窗口新建一个代码文件,在新建的代码编辑窗口编写代码。

在上面的代码中。如果用户输入80,即score变量的值为80。程序会先判断score的值是否在90至100范围内,如果不在,程序会继续向下判断score的值是否在80至90范围内,因为当前score的值为80,80包含在80至90范围内,条件满足,程序执行语句:如果用户输入50,即score变量的值为50。因为50不在条件判断的任何数值范围内,也就是所有条件判断都不满足。在这种情况下,程序执行else内的语句:代码编写完成,阿萌把代码保存到D盘的Python目录,保存的文件名称是score.py。

从输出结果可以看出:用户输入80分,程序会执行输出良的语句,其它语句都不执行;用户输入50分,程序会执行else内的语句,其它语句都不执行。简单条件结构只有两条执行路径,当满足条件时执行一条路径,不满足条件时执行另一条路径。同简单条件结构相比,多重条件结构可以有多条执行路径,每条执行路径对应不同的条件判断,程序按顺序对不同的条件进行判断,当条件满足时,执行该条件下的语句,语句执行完成,跳出整个判断结构,余下的条件判断语句不再执行。当所有条件都不满足时,执行else下的语句。编写一个程序,从键盘输入一个英文字母或数字字符,输出该字符的类别。请使用多重条件结构判别键盘输入字符的类别。提示:类别可根据ASCII码表来判断,ASCII码值大于等于48并且小于等于57时,为数字字符,ASCII码值大于等于65并且小于等于90时,为大写字母字符;ASCII码值大于等于97并且小于等于122时,为小写字母字符。ASCII码是一套编码体系,主要是对英文字母、数字及其一些字符进行编码。我们常用的计算机键盘上的每个按键表示的字符都对应着一个ASCII编码。一个ASCII编码就是一个数字,用户在键盘上敲入一个字符后,键盘输入程序会读取这个字符的ASCII码,存入到计算机。当程序需要显示输入的字符时,显示程序会根据字符的ASCII码,从点阵字库找到与ASCII码对应的点阵图形,最后输出到屏幕上。在Python程序中,要获取用户输入的ASCII码,可以使用下面的语句:上面的代码使用input函数获取用户输入的字符,并赋值给字符变量c,然后再使用ord函数把字符变量c转换为ASCII码,此时变量c的内容为该字符的ASCII码。