师:同学们,今天我们来学习广州版初中信息技术第二册第二章第三节分支结构,让机器学会做选择。在学校里,若将成绩划分为两个等级,可评定为合格或者不合格,60分以上(含60分)为合格,60分以下为不合格。大家想知道自己的成绩是否合格吗?有位同学对此很感兴趣,他用Python编写了成绩合格判断程序,现在我们一起来看看。大家边看边思考,运行程序后,程序做了什么?
程序运行后,屏幕提示“请输入成绩”。输入60分,回车后显示“成绩合格了”;输入59.5分,回车后显示“成绩不合格”。通过刚才的演示我们发现,在这个程序中,输入成绩后,程序对输入的数据进行了条件判断,然后根据不同条件执行不同操作。如果成绩大于等于60分,输出“成绩合格了”,否则输出“成绩不合格”。那么,如何让计算机学会做选择呢?今天我们就一起来学习分支结构的实现,让程序在不同条件下做不同的事情。
今天我们的学习目标是:一、了解程序中条件表达式关系和逻辑表达式的表示方法;二、掌握条件语句的三种格式:单选、二选一和多选一;三、体会条件语句在生活和程序中的应用。
我们先来分析一下刚才的程序。根据程序运行结果,程序先提示用户输入成绩,用户输入后,程序对成绩进行条件判断,很明显这个条件是“大于或等于60分”。最后,程序根据判断结果输出“合格”或“不合格”。根据分析,我们绘制出相应的流程图。在Python中如何表示条件呢?我们一起来学习条件表达式的内容。
条件表达式在Python中,表示条件可以用关系表达式或者逻辑表达式,其值为布尔型,结果只有True或者False。当条件的值为True(真)时,表示条件成立;否则,当条件的值为False(假)时,表示条件不成立。
关系运算与关系表达式:关系运算又称为比较运算,用于对两个类型相同的表达式的值的大小进行比较,其结果只能为True或False。关系表达式中使用的关系运算符,我们可以看出算数运算是优先于关系运算的。
逻辑运算与逻辑表达式:逻辑运算又称为布尔运算,用于对逻辑值进行逻辑运算,运算结果仍为逻辑值,即True或False。逻辑表达式中使用的逻辑运算符,我们可以看出关系运算是优先于逻辑运算的。
根据题意,这里的条件可以用关系表达式“s大于等于60”来表示。除了条件以外,还有几个关键字,“如果”对应关键字if,“否则”对应关键字else。在Python语言里,我们使用if和else两个关键字编写基本的条件判断语句,让程序在不同条件下做不同的事情。我们把这种根据条件判断来控制程序如何继续执行的程序结构称为分支结构。怎么编写条件语句,让程序作出选择呢?我们再一起来学习条件语句的内容。
条件语句程序的条件判断,根据解决问题的复杂程度可分为单选、二选一和多选一几种方式。
二选一,if - else语句:我们先把这个程序用类似Python语句的格式写出来,如下:如果用户输入的成绩大于或者等于60,那么打印“成绩合格了”,否则打印“成绩不合格”。用FCHART编制的程序流程图如图所示,请执行流程图,输入成绩65,因为条件成立,往右走显示“成绩合格了”;如果输入59.5,条件不成立,往左走显示“成绩不合格”。很明显,当输入成绩后,流程图的路径只有往左走或往右走两个选择,而且一定只会走其中一条路径,这就是二选一条件判断。需要注意的是,在输入代码时,不要忘了在条件表达式和else关键字之后都有英文冒号,下一条语句需要缩进,而且代码缩进的程度是一样的。
分支结构的二选一条件语句的命令格式为:if 空格 条件表达式 冒号 换行 缩进 条件为真时做的事 换行 else 冒号 缩进 其他情况做的事。大家应该注意到了,条件表达式和else关键词后都要跟英文冒号,下一条语句需要缩进,而且代码缩进的程度是一样的。有个同学是这样编写代码的,也实现了相同的功能。这里的条件语句是:if s大于等于60,print “成绩合格了”;if s小于60,print “成绩不合格”。这是用单选条件语句编写的代码,对比一下二选一条件语句编写的代码,我们可以看出它们的命令格式是不一样的。
那么单选if语句的命令格式是什么样的呢?它的格式为:if 空格 条件表达式 冒号 换行 缩进 语句块。它的功能是,如果条件成立,执行if行后的语句块;如果条件不成立,则直接执行语句块后面没有缩进的语句。
如果将成绩划分为四个等级,还可以评定为优秀、良好、合格、不合格。85分到100分评定为优秀,70 - 85分(不含85分)评定为良好,60 - 70分评定为合格,60分以下则评定为不合格。可以看出这里有多个判断条件,所以需要使用多选一条件语句。让我们一起来学习多选一条件语句的内容。
多选一if - elif - else语句:有时候我们有多重不同的条件,这就需要用到if - elif - else语句编写程序进行成绩评定。85 - 100分评定为优秀,70至85分(不含85分)评定为良好,60至70分(不含70分)评定为合格,60分以下则评定为不合格。很明显需要编写多个条件,所以需要使用多选一条件语句。我们先用类似Python语句梳理程序的逻辑,用FCHART编制的程序流程图如图所示,请执行流程图。输入分数88,因为第一个判断条件成立,所以显示“优秀”;如果输入75,第一个判断条件不成立,继续判断第二个条件成立,所以显示“良好”;如果输入66,第一和第二个条件都不成立,继续判断第三个条件成立,所以显示“合格”;如果输入59.5,第一、二、三个条件都不成立,所以显示“不合格”。很明显,三个条件共有4个可能。
我们注意到,虽然路径有很多条,但我们只能走其中一条路径,这就是典型的多选一条件语句。在Python中,我们用if - elif - else语句来实现多选一的条件判断,格式如下:从if行开始依次对条件进行判断,如果正确,则执行该条件下面的语句块,然后跳出该if语句;如果不正确,则对下一个条件进行判断。如果所有条件都不成立,则执行else下面的语句块。如果只要处理条件成立和不成立两种情况,命令简化一些,就是我们的二选一条件语句。如果只要处理条件成立一种情况,命令可以继续简化为单选的条件语句。不管是哪一种条件语句,都别忘了输入在条件表达式和else之后的冒号,以及冒号下面语句块各行的缩进。同样的,如果if - elif - else多选一条件语句的多个条件是互补的,我们一样可以用多个互补条件的if条件语句来代替。
