内容正文:
好,接着我们来学习一下python的选择结构。在现实生活中,我们常常要对事物进行判断和选择。比如说系统登录的时候,要判断你的用户名和密码是否正确,验证码是否正确。在进行电单车计价的时候,判断你的这个时长是在15分钟以内,还是超过15分钟的。在进行成绩的你划分的时候,要判断跟你的分数判断属于哪个等级。这种根据判断结果执行不同操作的功能,背后就是通过程序的选择结构来控制实践的。Python中根据选择的多少又分为了单分支、双分支和多分支选择结构一个分支、两个分支,三个及三个以上的分支。首先我们来看第一个单分支,这三个分支递进关系,单分支它就一个叫if是如果的意思。条件表达式后面跟那个冒号,接着是我们的语句组,条件表达式后面必须加一个冒号,这个冒号你一定不能省,它喜欢考改做题,接着语句组前必须要有缩进。你比如说我们程序一这个print a你会发现它前有缩进,缩进是啥?缩进就是空格,就空格空几个格都叫缩进,看你心情。正常是空四个,第三个一组可以是一行代码,也可以是多行代码。你看这一行代码,这是多行的程序。二就多行代码。当一组是多行代码,是多行代码必须遵循上述的缩进。你一行代码,你想几个空格,多行代码是你空格要是一个都是一个,要是两个都是两个,不然系统它就会提示错误,然后乘以3对吧?它的这个与if a大A小于零的语句组在哪呢?在这里,因为只有这一个有缩进的,这是我们首先我们要理解它的这个结构,接着我们来看这个程序如何执行的,如果条件表达式结果为真,我们就执行对应的语句组。如果前面表达式结果为假,我们就不执行,是真就执行,是假就不执行。比如说我们这个if a大于60,这是权限把式,那权限为真执行A权限为假不执行AA等于61成不成立呢?六十一大于60,所以说它成立,它就执行我们的print a。而这个51他就不成立,就不执行我们的语句类。而这个也一样,A等于60,它满足的条件它会执行我们的语句组。我们刚讲了语句组是多行代码时必须遵循相同的锁定,所以说这三行都是它的语句组成,立的时候它会执行这三行代码,它会输出ABC,不成立的时候它就不执行这三行代码,所以说它会什么都不输出。第三个乘以3,A等于-5和A等于五的结果是什么呢?A等于-5,判断满不满满足的条件,-5小于零是成立的。A等于负A将负A的值赋给我们的A对吧?A是-5,负负五那就正的,对吧?负负五那就是正的,所以说最终结果A就是5,然后输出接着A等于5,AA等于55小于零吗?捂不小于0,条件不满足,所以说他就不会执行这一步。有同学说他肯定会输出-5,他不会的,因为他没有执行这一步,这条件不成立。你原样怎么是5,他接着还输出5,他应该选他们的5,其实这就是求这个前面我们讲到一个绝对值绝对值它的核心代码就是这个就是通过选择结构来进行判断的那接着我们来看一个编程练习题,输入一个学生成绩0到100分,如果成绩大于等于60输出及格。若小于九六十就不输出任何东西,请你利用循环结构实现上的功能,说明成绩为整数对吧?通过分析我们可以发现,本题就涉及一个乘积大于等于60的输出分支。有同学说,你看这个还有一个乘积小于60,这不也这个分支吗?对吧?但是这个分支不做任何输入,也就是说这个分支不做任何操作,你有没有都一样。所以说本题只有这一个有用的分支,我们可以使用单分子选择结构来实现,具体方法如下,首先我要输入一个学生成绩,对吧?这成绩是整数,我给它输入变量给S。如果成绩大于60,大于等于60,我就输入几个,就这么简单。首先我们来看输入,输入一个学生成绩,输入使用input,提示请出一个学生成绩对吧?一这个成绩是整数,所以说我们还要使用int进行包裹。Int代表整数,float代表小数。输入完成之后付给我们的变量S组合起来就是S等于int input,请输入旋转输入转整赋值对吧?这样S就是存储我们输的一个成绩了,接着进行判断,如果那就if对吧?If s大于等于60,后面跟冒号不要省略,输出及格,输出啥?输出是print及格,简单吧简单。我们来看它的这个升级版叫双分子选择结构,它在单分支的基础上又加了一个else,否则我们刚刚讲单分支的时候,它不满抓时什么都不做。但是双分支不一样了。If条件表达式后面也是冒号语句组一,else后面也是冒号语句组2。如果条件表达式为真,它就执行if后面的语句组一。如果条件表达式为假,那就否则否则条件表达式为假,它就执行我们的语组2,为真执行语句组一,否则为假执行语句组2,也很好理解。下面我来看这个,首先输入一个分数分数,这里的分数是这个小数可以输小数。如果A大于60就输出A,否则那否则就A小于68就输出B我们下面来看这个,请输一个正整数,我输了一个88.5,88.5满不满满不满足的条件呢?满足的,所以说输出A那52满不满足条件的,不满足那条件为假,所以说资金否它就输出我们的BB那接着我们还是那个题,我们给它优化了一下,刚才这个小于60不是啥都不输出吗?这不符合正常逻辑。小于60我们输出不及格,大于60还是大于等于60我们还是输出及格。我们使用选择结构,那么这个题我们就可以使用双分支选择结构了,因为小于等于60,小于60它也有输出了,涉及乘积大于等于60和乘积小于60两个互斥分支,所以说我们可以使用双分支选择结构来实现。具体参考一下。首先也是输入,如果大于等于60的话,你就输出及格。那否则就是小于60,我就输出不及格是吧?输入我就不多讲了,input输入,int转为整数,赋给变量S,如果乘以大于等于60,那就if s大于等于60,输出及格,print及格,那else就是小于吗?小于60 else这个地方你应该输else对吧?然后输出不及格,这一个程序就写好了。If s大于等于60,print的及格else不及格。那接着我们来看多分结构,那么多分子烜结构它是if l if else,那它在如果否则基础上它又加了一个否则。如果你看l if,那么这个l if它后面也是跟条件表达式的,它是没有数量限制的。不要说我这里写了两个,就是两个它没有数量限制,你可以根据实际情况添加任意多个l if来实现多分支选择的一个效果。那么这个程序那么长,我给语句组多的很,我怎么知道哪一个呢?我们来看一下自上而下找到第一个结果为真的条件表达式,自上而下if l if有很多L衣服,你找到第一个为真的,哪个为真就执行哪个对应的语句组。你比如二维码就执行第二个对应的语句组,然后执行完成之后,我们就退出多分支的选择结构了,后面都不再判断了,l if else都不再判断了。如果说上面条件都不为真,这什么if后面跟着条件表达式,l if后面跟着条件表达式,全部是假的。这上面全部是假的,它就执行我们l in的语句组。我们下面来看这个成语,请输入分数81,我输了一个分数,A此时是81,if l if l if else对吧?自上而下找到第一个条件为真的A大于等于90 81不满足,所以不满足A大于等于80,满足,满足之后它就执行这个对应的语句组,输出B对吧?输出完B之后,程序就退出了。有的同学不会说他也满足60,他还可以输出C。不是的,执行完成一个,他只会执行一个,执行完成一个,不管其他条件成不成立,后面都不再进行判断了。所以说他输入B,接着五十9,你发现第一个不满足,第二不满足,第三不满足,都不满足怎么办?都不满足执行else,所以说这个应该选择我们的D,执行我们的else语句,大家明白吗?明白,我们来看这个,这个又升级了那个成绩是0到100,根据右侧0到59输出不及格,60到79输出及格,80到89输出良好,90到100输出优秀。你会发现典型至少是个分支,单分支双分支都不行,我必须得送多分支了。而且人家还说了,如果不在0到100之间,我还输出成绩不正确。加加起来有五个分支了,所以说我们必须使用多分支源机构,然后进行判断了。输入一个整数,如果0到59,输入一个分数是S码,0到59我们可以表示为S大于等。且S小于等于59,而且我们可以使用and来表示,我们使用表达式的形式把0到59改写出来。那后面也一样,否则如果60到79输出及格,否则如果80到89输出良好,否则如果S90到100输出优秀,否则就是说上面输出的都不对。他说了不在0到100之间,它是输出成不正确。所以说我有一个兜底的那我们来编写一下这个程序,输入我就不讲了input int然后如果如果S大于等于0 and s小于等于59,输出不及格对吧?否则如果那就l if可以增加更多条件,l if后面可以跟条件表达式用于拓展分支,没有数量限制,及格80到89,那输出良好90到100,输出我们的优秀。如果都不满足,就输出我们的成绩不正确。这样的话就是实现我们题目的一个功能,通过lf来拓展我们的分支,没问题吧?没问题,我们来看这个题目,如图所示的判断代码运行后结果输出是多少呢?A等于6,B等于3,对吧?A小于B,你看六小于三这条件不成立。不成立应该执行什么呢?执行我们的L水印的语句组,那B的结果B是个变量,所以说B应该是3,应该选择我们的D。有同学不是说这是B,这B就应该输出这个B,对吧?我们前面讲point的时候,只有字符串线要输出变量,输出对应的值。第二个,在三国演义中,小说关于关公、云长都指同一个人物。为统计小说该人物出现的频次,小字编写程序部分截图如下。一和应该填什么?也就是说你这个word是关羽的时候,关公的时候,关于长城的时候,它的结果都应该加1,这里答案就给了两个,要么是这个与和的关系,要么是或的关系。我们这里明显是或的关系,对吧?关羽也是,或者关公也是,或者关云长也是,大家应该选择我们的D哦哦啊这个题应该放到运算符与表达式讲,但是放到那的时候,你们不知道if啥意思,所以说我们只能放到这里了。接着我们来看这个真题练习,这是25年的真题。根据相关数据分析,男性对适宜的心率范围,这是最小值,这是最大值。根据年龄和安静心率求的女性最适宜的心率范围,这是最小值,这是最大值。它两个的标准也不一样,这是220减,这是210减。小明使用manager程序编写最适宜心率范围的计算程序,输入我们的性别、年龄和心率,它就可以通过这个公式来计算出我们的心率范围的最小值到最大值。其实这题不难,我们在计算之前我们先要干嘛呢?我们先要判断性别是男还是女,所以说它涉及男女两个互斥分支,我们可以使用双分支选择结构来进行判断。如果是男的话,就按照男性的公式去进行计算。如果是女的话,那他就按照女性的公式来进行计算。如果是男就是男性公司,否则是女她就按照女性公式。If else按照我们这个,首先第一个会让你输入性别年龄和安定心率,输入性别年龄案件心率,告诉你第一行输入错了,哪错了呢?应该把这个print改成什么?Print输出的意思,我们要改成input in input不知道怎么写,人家后面都给你案例了,所以说你要改成input的。那又犹豫了,你后面怎么有float?我这里要不要加float?人家加float是因为啥?因为年龄和心率,它是数字,它是小数是吧?我这个性别啥?性别是男女,它是字符串,所以说不用加flow,你不要画蛇添足,就改成input就行了。接着我们要判断是男还是女的,对吧?判断然后我们就使用双分选结构,这个地方你应该选择if对吧?If是男就按照男性的公式,否则侍女它就按照女性的公式。然后这个T1是啥意思呢?你看乘0.6,T2乘0.8说明它是心率范围的最小值和最大值,都是女性心率范围的最小值和最大值都使用T1T2来表示最适于心率范围。我们是不是应该这个140应该是T1的值,100这个65应该是T2的值。你看第一个是T1没问题,第2个TT是啥?T是安静心率,人家让你求这个心率范围,应该输出T1或者T2,所以说你要把这个T改成T2,int t2,程序就对了。接着我们来看这个,上面是个双分子的题,下面是个多分子的题。这个题在24年和25年都出现了,说不定明年还出现,拿到就出问题。另外编程软件输入感冒指数,跟我们前面讲的成绩是一样的。然后输出该指数对应的含义,0到6之间输出少发,7到19之间输入交易发,20到30输入一发,大于等于31输入交易发,如果说不在范围之内,我就输出出指数值不正确,跟刚才的成绩异曲同工。编写程序时遇到一些问题,请你帮他修改程序。通过这个指数转盘一看,多分子选择机构准备都是显示结构。这它的格式if l if l if LS后面这就是它的条件吗?首先第一个此行语数错误,请输入感冒指数。在这个错误他考试他喜欢考这个错误。老生常谈了,point啥意思?输出你发现后面我们讲的时候还会有输入输出错误。他年年考这些,他就怕你不会,他就考这些简单的。所以说你要把它改成这个input,还有这个name,就是我们的感冒指数。如果在0到6之间输出少发,他没告诉你错就一定对,你就不用管。IL if多重选结构在7到19之间输入交易发,对吧?告诉你正好又入错了,你先看20到30,冒号也对,哪错了呢?Else错了else后面不可能跟条件表达式,因为它是兜底的,只有l if后面它应该跟条件表达式,所以说你这个地方应该写l if对吧?If else之间可以增加任意数量的l if,l if后面才能跟条件表达式,所以说你要改成LE然后接着20到30输出一发,大等31速度极一发,这个LF也对,后面更加220,大于等于31也对。错在哪呢?错在冒号对吧?冒号考试出,你像这种错误都先找冒号,然后输出记忆法,所以说你要这地方给它改成冒号,然后最后一个else else干嘛要输出?只说是不正确,上面输的不在这个范围之内,就输出指的是不正确。那输出是啥呢?输出是我们的print,你会发现我们这个程序其实考的题目都是死的。这个一题2点5分的试题就是十分还是很好拿的。最起码input和print这个冒号你要能分析出来,是这几位能拿到这个l if可能有点难。那就来总结一下本节课学习的知识点选择结构,根据判断结果执行不同代码三分之那就if为真,执行语句为假,不执行三分之if l1。如果为真执行语主一,否则为假执行与语主二多分支哪个它在增加了一个,否则如果没有数量限制,哪个为真执行,哪个都不为真20执行,那就讲到这里,再见。