第五课:更多的分岔路 – if-elif-else 语句和逻辑判断
- 时长: 90 分钟
- 教学目标:
- 学习
else
命令,处理条件不满足时的“否则”情况。 - 学习
elif
命令,处理多个互斥的条件判断(“再如果”)。 - 掌握
if-elif-else
结构的用法和执行顺序(从上到下判断,只执行第一个符合条件的)。 - 学习
and
(并且),or
(或者),not
(不是) 这三种逻辑连接词,用来组合更复杂的条件。 - 能够编写程序实现多分支的选择逻辑。
- 学习
课程内容
1. 复习与引入 (10 分钟)
- 复习: 复习
if
语句和关系运算符。 - 提出问题: 老师提问:“上一节课我们判断了及格(大于等于 60),如果及格就表扬。但如果不及格,我们什么都没做。怎么让程序在及格时打印‘及格’,否则打印‘不及格’呢?” “那怎么判断分数等级呢?如果大于等于 90 是优秀,大于等于 80 是良好,大于等于 60 是及格,否则就是不及格?”
- 引出
else
和elif
: 单纯的if
只能做“如果…就…”。为了处理“否则”的情况,我们有了else
。为了处理“再如果”多个条件的情况,我们有了elif
。
2. 如果不…就… – else 语句 (15 分钟)
else
的作用:else
语句跟在if
后面,当if
的条件是False
时,就执行else
后面缩进的代码块。它没有自己的条件。- 语法:
if 条件表达式: # 条件为 True 时执行 print("条件成立") else: # 条件为 False 时执行 # 注意:这里的代码也需要缩进! print("条件不成立")
- 强调:
else
必须和if
配对使用,不能单独存在。else
后面有冒号:
,代码块需要缩进。 - 演示:
score = 58 if score >= 60: print("考试及格") else: # score >= 60 是 False,所以执行这里的代码 print("考试不及格") print("判断结束")
- 动手实践: 学生修改分数,观察
if
和else
分别在什么情况下执行。 编写程序,判断输入的数字是奇数还是偶数(用if-else
)。
3. 如果…再如果…否则… – if-elif-else 结构 (20 分钟)
elif
的作用:elif
是 “else if” 的缩写,用在if
和else
之间。当if
的条件不满足时,程序会接着判断elif
的条件;如果elif
的条件满足,就执行elif
后面缩进的代码块,然后跳出整个if-elif-else
结构。可以有多个elif
。- 语法:
if 条件1: # 条件1 为 True 时执行 elif 条件2: # 条件1 为 False,且 条件2 为 True 时执行 elif 条件3: # 条件1, 2 都为 False,且 条件3 为 True 时执行 # ... 可以有更多 elif ... else: # else 是可选的 # 所有上面的条件都为 False 时执行
- 执行流程: 程序会从上往下依次判断条件。只要遇到第一个条件为
True
的分支,就会执行该分支的代码块,然后整个if-elif-else
结构就结束了,后面的elif
和else
都不会再看。只有当所有if
和elif
的条件都为False
时,才会执行else
分支(如果else
存在)。 - 强调:
elif
后面需要有条件表达式和冒号:
,代码块需要缩进。 - 演示: 编写分数等级判断的程序。
score = 75 if score >= 90: print("成绩等级:优秀") elif score >= 80: # 上面的 >=90 不满足,判断这个 >=80 print("成绩等级:良好") elif score >= 60: # 上面的 >=90 和 >=80 都不满足,判断这个 >=60 print("成绩等级:及格") else: # 所有上面的条件都不满足 print("成绩等级:不及格") print("等级判断完成。")
- 动手实践: 学生输入不同的分数,观察程序打印的等级,理解判断的顺序和“只执行第一个符合条件的分支”的规则。 尝试调整
elif
的顺序,比如把>=60
放在第一个elif
的位置,看看结果有什么不同。
4. 组合条件 – 逻辑运算符 (15 分钟)
- 作用: 逻辑运算符用来连接或修改布尔值 (
True
或False
) 或条件表达式,形成更复杂的条件。 - 逻辑运算符:
and
: 并且。只有当两个条件都为True
时,and
的结果才是True
。or
: 或者。只要两个条件中有一个为True
,or
的结果就是True
。not
: 不是。把一个条件的结果反过来,True
变False
,False
变True
。
- 演示:
age = 15 money = 20 # and 的例子:年龄大于12 并且 钱大于10 print(age > 12 and money > 10) # True and True -> True age = 8 # or 的例子:年龄小于10 或者 钱大于100 print(age < 10 or money > 100) # True or False -> True is_raining = False # not 的例子:不是下雨天 print(not is_raining) # not False -> True # 可以在 if 语句中使用组合条件 if age > 12 and money > 10: print("可以买电影票") if age < 10 or is_raining: print("待在家里比较好")
- 动手实践: 学生尝试使用
and
,or
,not
组合不同的简单条件,预测结果并运行验证。 然后在if
或elif
后面使用这些组合条件。
5. 课堂练习 (15 分钟)
让学生独立完成以下练习:
- 练习 1: 编写一个程序,询问用户输入一个数字,判断它是正数、负数还是零。(使用
if-elif-else
)。# 在这里写你的代码 num_str = input("请输入一个数字:") num = float(num_str) # TODO: 判断是正数、负数还是零 # TODO: 打印结果
- 练习 2: 编写一个程序,询问用户的用户名和密码。如果用户名是“小明”并且密码是“8888”,就打印“登录成功!”;否则打印“用户名或密码错误!”(使用
and
逻辑运算符)。 - 练习 3: 编写一个程序,询问用户输入的数字是否能被 5 整除或者能被 3 整除(至少满足一个条件即可)。如果是,就打印“这个数能被 5 或 3 整除”。(使用
or
逻辑运算符)。
6. 总结与提问 (10 分钟)
- 回顾: 回顾本节课内容:
else
和elif
的用法,if-elif-else
的多分支选择结构和执行流程,逻辑运算符and
,or
,not
及其作用。 再次强调条件判断的顺序很重要。 - 提问:
if
语句后面可以没有else
吗?elif
呢?if score >= 90: print("A") elif score >= 80: print("B")
,如果 score 是 95,会打印 A 还是 B?会打印 B 吗?True and False
的结果是什么?True or False
呢?not True
呢?
- 答疑: 回答学生的问题。
7. 布置课后作业 (5 分钟)
- 作业 1: 编写一个程序,询问用户年龄,根据年龄打印不同的阶段:小于 7 岁打印“儿童”,7 到 15 岁打印“少年”,大于 15 岁打印“青年”。(年龄范围可以根据实际情况调整)。
- 作业 2: 编写一个程序,询问用户输入一个年份,判断这个年份是否是闰年。闰年的简单判断方法是:能被 4 整除,但不能被 100 整除;或者能被 400 整除。 (提示:使用
and
,or
和%
运算符)。 - 作业 3: (选做) 编写一个简单的公交车票价计算程序。询问用户的年龄和是否是学生(让用户输入“是”或“否”)。票价规则:成人 2 元,学生半价(1 元),儿童(小于 6 岁)免费,6-12 岁的儿童如果不是学生也是 1 元。根据年龄和是否学生打印最终票价。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)