哈罗,各位大朋友小朋友们!上一期,我们认识了 Python 王国里的聪明管家——if 语句,让电脑学会了根据“如果”来做判断。
但是,细心的小朋友在敲代码时肯定会遇到一个麻烦:如果条件不成立,电脑就“哑巴”了,什么也不做。比如规定了“如果考到100分就给奖励”,那如果没考到100分呢?
其实,生活不是单行道,在做决定时我们总要考虑“另外一种情况”。今天,我们就带大家学习 Python 里最经典的二选一神器——if...else 语句!
🌗 什么是 if...else?给电脑抛一枚“硬币”
上一节课我们学了 if,在英文里,else 的中文意思就是“否则、其它、别的”。当它和 if 组合在一起,就变成了经典的“如果……否则……”句式。
生活中有很多事情,都可以被简单地划分为非黑即白的两种情况(二分类),比如:
在编写程序时,我们就是用 if...else 语句来专门处理这些只有两种结果的“二分类”情况的。你可以把它想象成电脑在抛硬币,正面走一条路,反面走另一条路,绝不纠结!
🚦 语法警察上线:这几个规矩千万别破!
要请出这位能同时处理两种情况的高级管家,我们必须严格遵守它的“格式排版规矩”:
空格与冒号: 和之前一样,if 后面一定要加一个空格,写完条件后,一定要加英文冒号 :。
退格缩进:if 和 else 下方归它们管的具体指令(语句块),一定要在同一列上打 4 个空格作为缩进,因为这是 Python 的规范。
对齐强迫症:else 绝对不能缩进,它一定要和前面的 if 待在同一列上对齐。
🚨 超级大坑警告:else 后面一定要直接加英文冒号 :,并且绝对不能在后面添加任何条件语句!
💻 实战演练:写一个智能判卷器
光说不练假把式,我们用代码来实现一个学校里最常见的逻辑:考试如果上了 60 分就算及格,否则就是不及格。
在 PyCharm 里,带孩子敲下这段魔法代码:
score = input('请输入成绩:') # 先让用户输入成绩
score = float(score) # 施展魔法,把输入的文字转成小数数字
if score >= 60: # 如果成绩大于或等于60分
print('及格') # 记得空4格哦!大喇叭喊出“及格”
else: # 否则(千万别跟条件,直接敲冒号!)
print('不及格') # 同样空4格!大喇叭喊出“不及格”你看,代码是不是变得超级聪明了?不管你输入什么分数,它都能精准地告诉你到底及不及格!
🕵️♂️ 侦探小挑战:它和写两个 if 有啥区别?
有些爱动脑筋的孩子可能会问:“老师,我不嫌麻烦,我连续写两个 if 行不行?”比如这样写:
if score >= 60:
print('及格')
if score < 60:
print('不及格')
功能上确实能做到,但这俩到底有啥区别呢?
这里给大家留个课后小任务:建议用我们之前学过的“程序调试”方法(点亮小爬虫图标开慢动作回放),观察连续使用两个 if 语句的程序流程,看看它和上面使用 if...else 语句的流程有什么不同。(悄悄剧透:if...else 就像是在一个岔路口做选择,选了左边就不会看右边,效率超高;而两个 if 则是笨笨地把所有路牌都挨个看一遍哦!)
📝 今日成就卡
到今天为止,孩子们的逻辑大厦又添了一块重要砖瓦: