哈罗,各位大朋友小朋友们!在前面的课程中,我们带孩子们学习了 if(如果)和 if...else(如果...否则)。有了它们,电脑就能像抛硬币一样,在两种情况里做决定了。
但是,真实生活中的选择题往往不止两个选项。比如:如果明天很热我就去海边浪;如果是阴天我就去爬山;否则我就待家里。
面对这种“ABCD多选一”的复杂局面,电脑该怎么处理呢?今天,我们就来给孩子们的逻辑武器库再添一把神兵利器——if...elif...else 多重分支语句!
🔀 认识新管家:elif(或者)
在 Python 王国里,elif 其实就是英文 else if 的缩写,翻译成大白话就是“或者”的意思。
当它和我们熟悉的 if、else 强强联手时,就构成了一个完美的判断链条:“如果……或者……否则……”。程序中就是用 if...elif...else 语句来执行这些多种情况的。
这套组合拳最厉害的地方在于,elif 是可以无限分身的! 只要你有需求,你可以在中间加无数个 elif(比如:if...elif...elif...elif...else),把所有可能的情况都安排得明明白白。
📏 魔法念咒指南:这5条语法铁律必须守!
想要使唤这套高级连招,代码的书写格式必须严丝合缝:
加空格与冒号:elif 后面一定要加一个空格再写条件,条件写完后一定要加英文冒号 :。
家族必须对齐:if、elif 和 else 这三位大管家,一定要在同一列上站得整整齐齐,千万不能缩进。
小弟必须缩进: 在它们下方具体要执行的指令代码(语句块),一定要打 4 个空格作为缩进,因为 4 格是规范。
层层递进: 如果条件 1 成立,电脑就执行第一件事,然后直接下班;如果条件 1 不成立,才会去看条件 2;以此类推。
老实巴交的 else: 作为最后兜底的老大,else 后面一定要加英文冒号,而且绝对不能添加任何条件语句!
💻 实战演练:打造“全自动成绩评级器”
学校里发成绩单,经常会有 A、B、C、D、E 好几个等级。规则是这样的:考试如果上了 90 分,等级就是 A,80 分以上是 B,70 分以上是 C,60 分以上是 D,否则都是 E。
我们来看看怎么用几行代码,让电脑自动帮老师评级:
score = input('请输入成绩:') # 收集输入的成绩score = float(score) # 转成可以比大小的小数数字if score >= 90: # 第一关:如果上了90分print('成绩等级:A')elif score >= 80: # 第二关:或者上了80分print('成绩等级:B')elif score >= 70: # 第三关:或者上了70分print('成绩等级:C')elif score >= 60: # 第四关:或者上了60分print('成绩等级:D')else: # 终极兜底:否则(连60都没到)print('成绩等级:E')🕵️♂️ 避坑小剧场:全写
if 行不行?有些小迷糊会偷懒:“既然都是做判断,我全用 if 不行吗?” 我们来看看如果把代码全换成 if 会发生什么灾难:
score = input('请输入成绩:')score = float(score)if score >= 90:print('成绩等级:A')if score >= 80:print('成绩等级:B')# ...后面的省略...灾难现场模拟:
假设孩子考了 95 分。电脑看到第一个 if,95 大于 90,屏幕喊出:A。
紧接着它看到了第二个独立的 if,95 也大于 80,屏幕又喊出:B!
结果就是,考了 95 分,屏幕上哗啦啦打印出了 A、B、C、D 四个等级,整个程序全乱套啦!
这就是 elif 的神奇之处:它是一个“排他”的过程。只要上面有一个条件满足了,电脑干完活就会自动跳过后面所有的 elif 和 else,效率极高且绝不出错!
📝 今日成就卡
到今天为止,Python 里的“三大逻辑结构”(顺序、基础选择、多重选择)孩子们已经全部拿下了:
认识了新管家: 知道了 elif 就是“或者”的意思。
掌握了多重选择: 能够熟练使用 if...elif...else 处理复杂的生活分类问题。
逻辑思维大升级: 懂得了连环判断和独立判断的巨大区别。