CAICP-E · Python 编程基础
要不然呢
条件不成立时走另一条路,多条路用 elif。
这一节要学会什么
#what上一课会写 if。条件为真,才做里面那几句。
为假,就跳过。
这节课补上另一半:要不然呢。
你会写 else。条件不成立时,走另一条路。
路比较多时,你会写 elif。从上往下问,问到第一个真的就走。
if、elif、else 要齐头对齐。它们是同一组路口。
这一课还不把两个条件用 and 拼起来。也不在 if 里面再写 if。 先把「多条路只走一条」跑熟。
红灯怎么办
#hook绿灯走。那红灯呢? 总不能什么都不说。
分数到了 60,打印及格。不到 60,也该有一句话:继续加油。
生活里的选择,常常不是「做」或「不做」。是「走这条」或「走那条」。

如果觉得有点难 先只写 if 和 else 两路。 跑通了再加 elif。
如果已经会了 写一个三档评价。 优秀、及格、继续加油。 改三次分数,看每次只出现一句。
else:否则走这边
#explore-elseelse 表示:否则。前面的条件为假,才走这边。
score = 50
if score >= 60:
print("及格")
else:
print("继续加油")50 不到 60。所以打印:继续加油
两条路只走一条。不会两句都打印。
把分数改成 80。这次只打印:及格 else 那边被跳过。
else 后面也要冒号。里面的句子也要缩进 4 格。
和 if 家里的人,空格一样多。
light = "红"
if light == "绿":
print("走")
else:
print("停")灯不是绿,就走 else。红灯会打印:停

else 自己不再写条件。它的意思就是:上面那个 if 不行,就来我这儿。
elif:否则如果
#explore-elif有时候不是两条路。是三条、四条。
红绿灯有绿、黄、红。成绩有优秀、及格、加油。
这时用 elif。它表示:否则如果。
再问一个新条件。
score = 85
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("继续加油")从上往下问。先问 90,不成立。 再问 60,成立。后面不再问。
85 不到 90,但到了 60。所以只打印:及格

注意:不会既优秀又及格。第一个真的分支赢了,后面就坐下。
elif 可以写好几个。最后的 else 可以省略。
有它更稳:总能走到一条路。
light = "黄"
if light == "绿":
print("走")
elif light == "红":
print("停")
else:
print("等一等")黄灯不是绿,也不是红。走 else,打印:等一等
齐头对齐,才是同一组
#explore-alignif、elif、else 要站在同一列。左边空格一样多。
这样电脑才知道:它们是同一组路口。
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("继续加油")三个词齐头。里面的 print 都往里站 4 格。

如果 else 比 if 更靠右,电脑会认错家。对齐看错,路就走错。
用手指从左边扫。同一组的 if / elif / else,指尖停在同一条线上。
一次只走一条合格的路。这叫互相排斥:选了这条,就不再选那条。
小项目:成绩三档和红绿灯
#explore-grade先做成绩三档。改 score,每次只该出现一句。
score = 92
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("继续加油")92 走第一句:优秀 把 92 改成 70:及格 再改成 40:继续加油
问的顺序很重要。如果先问 >= 60,92 也会被说成及格。
优秀那条就再也走不到。所以大的门槛写在上面。
再做红绿灯。
light = "绿"
if light == "绿":
print("走")
elif light == "黄":
print("等一等")
else:
print("停")把灯改成黄、再改成红。三句里每次只出现一句。
条件不成立时,现在有地方说话了。两个条件要一起看,下一课再学。
这节课我学会了
#review记住这些:
else:if 不行,就走这边。elif:否则再问一个条件。- 同一组只走第一条为真的路。后面不再问。
if/elif/else齐头对齐。里面的句子再空 4 格。
试着在心里跑一遍:
score = 85
if score >= 90:
print("优秀")
elif score >= 60:
print("及格")
else:
print("继续加油")先问 90,假。再问 60,真。 打印:及格 else 不会再走。
下一课才把两个条件拼在一起。先让三条路各走各的。
试一试
#evaluate看完就来检查一下。选错了也可以再想。
单选题
59 分走哪条
score = 59。if score >= 60 打印「A」,else 打印「B」。结果是?
单选题
85 分三档
score = 85。if score >= 90 打印优,elif score >= 60 打印及格,else 打印加油。结果是?
单选题
黄灯走哪句
light = 「黄」。if 绿就走,elif 红就停,else 就等一等。会打印什么?
多选题
关于 else 和 elif
下列说法正确的有哪些?可以多选。
可多选
未登录时不会保存学习进度