第 4 课 · 做选择

成绩等级判断器

程序第一次长出「大脑」:用 if 让电脑根据条件做选择,做一个会判断成绩等级的程序。

120 分钟完整闭环 4 个知识点 5 段示范代码 难度 ★★
🏠 学期课件主页 ← 上一课:输入与互动下一课:多分支选择 →
01

本课导览

先看这节课教什么、怎么分配 120 分钟,老师心里有底,课堂节奏就不乱。

第4课做选择
🎯 趣味项目:成绩等级判断器
if 语句缩进规则比较运算符if-else 二选一
🎯教学目标(学完这节课,学生能…)
  • 理解「条件判断」的概念,知道程序可以像人一样「做选择」;
  • 掌握 if 语句的基本语法:if 条件: 加冒号,下面缩进写要执行的代码;
  • 学会使用比较运算符(>、<、==、!=、>=、<=),知道 == 和 = 的区别;
  • 掌握 if-else 二选一结构,能编写一个完整的成绩等级判断程序。
🔑 教学重点
  • if 语句三件套:if 关键字 + 条件 + 英文冒号 :
  • 条件成立才执行缩进的代码,else 表示「否则」
🧗 教学难点 / 易卡点
  • 忘记冒号 / 冒号打成中文
  • if 下面的代码忘记缩进(按 Tab),或缩进不齐
  • 把比较用的 == 写成赋值用的 =
🧰课前准备(老师 / 学生)
  • 老师:把第 3 课作品里表现好的 1~2 个程序调出来,上课快速展示表扬;准备好成绩等级判断器的运行演示。
  • 学生:打开桌面「我的作品」文件夹,今天的新作品保存为「第4课_成绩等级.py」。
  • 口令约定:老师说「缩进」,学生右手按一下 Tab 键;说「冒号」,学生用嘴喊出「冒号」。
⏱️120 分钟教学流程(建议时间轴,可按班级情况微调)
时间环节做什么 / 师生互动要点
0–5候课 · 设备检查开机 → 打开编辑器 → 确认「我的作品」文件夹在桌面。
5–12上节回顾 · 快问快答input 是什么?int() 干什么用?"10" 和 10 一样吗?用举手抢答热场。
12–22情景导入讲「岔路口的选择」故事:程序总是从头跑到尾,怎么让它到了岔路口自己选一条路走?引出 if。
22–35知识讲解if 语法三件套 + 缩进是什么 + 比较运算符全家福(配 True/False 小实验)。
35–50示范代码 + 上机(示例1~3)if 判断身高 → 比较运算符实验 → if-else 奇偶判断,三段代码边敲边讲。
50–70主项目:成绩等级判断器老师带读嵌套 if-else 链 → 学生亲手敲 → 输入 95/85/70/50 四组数据验证。
70–85课堂练习 A/B练习 1 修改等级提示语;练习 2 成年人判断器;老师投屏典型错误全班找茬。
85–95挑战练习 C三个数比大小找最大(嵌套 if 挑战);学有余力的同学试做门票计算器。
95–105闯关小测5 道口答题:if 后面要不要冒号?== 和 = 一样吗?else 什么时候执行?……
105–115总结 · 保存作品齐读本课口诀;作品保存为「第4课_成绩等级.py」;强调冒号 + 缩进是 if 的「身份证」。
115–120布置作业 · 预告说明必做/选做/思考题;预告第 5 课:用 elif 让程序在多种情况里选一种,做石头剪刀布!

时间轴把 2 小时切成 8 段:复习→导入→讲解→示范→上机→练习→检测→小结,每段都有明确产出。

02

情景导入 · 复习热身

先用 5 分钟把上节课的记忆叫醒,再用故事和类比把新知识挂到孩子已有的经验上。

🔁上节回顾 · 快问快答(建议 5 分钟)

问 1:input() 函数是电脑的什么器官?它返回的文字是数字还是字符串?
→ 耳朵;返回的永远是字符串(文字),想当数字用要先 int() 转换。

问 2:int("42") 和 float("3.5") 分别把文字变成什么?
→ 整数 42 和小数 3.5——int 转整数,float 转小数。

问 3:上一课的「输入→处理→输出」流程中,猜数字游戏哪里是处理?
→ 把猜的数跟答案比大小。今天开始,让电脑学会「比完自己拿主意」。

📖情景故事 · 今天学什么

小刚参加学校的游乐园研学。走到过山车前,检票员叔叔说:身高达到 120 厘米才能玩哦!

小刚心想:如果是电脑来当检票员,它怎么判断「够不够高」呢?总不能每个小朋友都去问一次程序员吧。

老师告诉他:只要给电脑一句咒语 if,它就会自己量身高、自己做决定——够高就放行,不够就请你去玩旋转木马。

原来程序不仅能从头跑到尾,还能在岔路口自己选路。今天你就来当这个「给电脑装上大脑」的人!

💡生活类比:把新知识挂在旧经验上
🚦

if = 路口的红绿灯

红灯停、绿灯行:条件成立(绿灯)才放行,不成立(红灯)就拦住。

条件判断
📏

比较运算符 = 体育课的比身高

谁比谁高、谁和谁一样高——比较完只有两个结果:真(True)或假(False)。

True / False
📐

缩进 = 排队时往前站一格

冒号后面的代码要整体缩进,电脑才知道「这些是 if 的小弟,跟着 if 混」。

代码块
🚪

else = 「否则」的备用门

if 的门没开时,else 的门自动打开——两条路二选一,总得走一条。

二选一
🗝️本课核心口诀(板书 / 齐读)
核 心 口 诀if 判断像路口,条件冒号不能丢;
缩进的代码是小弟,else 负责走另头!
03

知识讲解

分小块讲透语法点,每一块都配生活类比 + 要点小结,讲完立刻口头小试。

🚦if 语句——让程序会「思考」

if 在英语里是「如果」,在 Python 里意思是:如果条件成立,就执行下面缩进的代码。

写法三件套:if + 条件 + 英文冒号 :,然后换行缩进写「条件成立时要做的事」。

缩进一般按一次 Tab 键。缩进的代码就像 if 的「小弟」——if 说走才走,if 不放行它们就原地不动。

看例子:if 年龄 >= 18: 下面缩进写 print("成年人"),只有年龄真的 ≥18 时才会打印。

格式:if 条件: 然后换行缩进冒号 : 是英文的,不能丢只有条件成立,缩进代码才执行
💡 判断条件成立叫「真」(True),不成立叫「假」(False)。
📏比较运算符——让电脑会「比一比」

程序要「思考」,首先得会「比较」。Python 用下面这些符号比大小、比相等:

大于 >、小于 <、大于等于 >=、小于等于 <=——和数学课学的差不多,只是写法要打成英文符号。

等于 ==:注意是两个等号!一个等号 = 是「赋值」(把右边的数装进左边的盒子),两个等号 == 才是「比较」(问两边一样不一样)。

不等于 !=:感叹号加等号,意思是「不一样」。比较的结果只有两个:True(真) 或 False(假)。

> < >= <= == != 共六个== 是比较,= 是赋值比较结果 = True 或 False
💡 把 5 > 3 和 5 == 3 这样的式子直接放进 print(),电脑会打印 True 或 False,很好玩!
🚪if-else——二选一

生活中很多事是二选一:够高 → 玩过山车;不够 → 玩旋转木马。Python 用 else 表示「否则」。

if 条件成立 → 执行 if 下面缩进的代码;条件不成立 → 执行 else 下面缩进的代码。两条路总走一条。

else 的写法:else: 后面也要加冒号,下面同样要缩进。else 自己不带条件,因为它管的是「剩下的所有情况」。

当需要判断的情况不止两种时,可以把 if-else 像积木一样一层套一层(嵌套),成绩等级判断器就是这么搭出来的。

if 成立走 if,不成立走 elseelse: 也要冒号 + 缩进多种情况用嵌套 if-else 一层层分
💡 嵌套时每往里面一层,缩进就多按一次 Tab。敲代码时眼睛盯着缩进,别让「小弟」站错队。
04

示范代码 · 动手做

老师先带读代码、讲注释,再让学生亲手敲一遍——敲错正好学习调试。

Python示例 1 · 第一个 if:身高够不够 120 厘米
# 第4课:if 条件判断——游乐园检票员
# 功能:量身高,够 120 厘米才能玩过山车

height = int(input("请输入你的身高(厘米):"))
if height >= 120:
    print("身高够了,可以去玩过山车!")
    print("系好安全带,出发!")
print("祝你玩得开心!")
运 行 结 果
请输入你的身高(厘米):125
身高够了,可以去玩过山车!
系好安全带,出发!
祝你玩得开心!
✍ 分别输入 125 和 110 运行两次,观察「去玩过山车」这行什么时候出现、什么时候消失。

🤔 想一想:最后一行 print("祝你玩得开心!") 没有缩进,它受 if 控制吗?什么时候都会执行吗?

Python示例 2 · 比较运算符小实验:打印 True 和 False
# 比较的结果是"真"True 或"假"False
print(5 > 3)      # 5大于3,真
print(5 < 3)      # 5小于3,假
print(5 >= 5)     # 5大于等于5,真
print(7 == 7)     # 两个等号是"比较"
print(7 != 8)     # 7不等于8,真
print(6 == 9)     # 6等于9吗?假
运 行 结 果
True
False
True
True
True
False
✍ 照着敲一遍,对照注释猜一猜每个结果再运行验证,看看你猜对几个。

🤔 想一想:把 print(7 == 7) 改成 print(7 = 7) 会怎样?试试看,记住这个错误的样子!

Python示例 3 · if-else 二选一:判断奇数和偶数
# 用 if-else 判断一个数是奇数还是偶数
num = int(input("请输入一个整数:"))
if num % 2 == 0:
    print(str(num) + " 是偶数")
else:
    print(str(num) + " 是奇数")
运 行 结 果
请输入一个整数:8
8 是偶数
✍ 输入几个不同的数验证:4、7、100、99,看看奇偶判断对不对。

🤔 想一想:这里 % 是第 2 课学过的什么运算?为什么用 num % 2 能判断奇偶?

Python示例 4 · 主项目:成绩等级判断器(嵌套 if-else)
# 第4课主项目:成绩等级判断器
# 功能:输入分数,判断成绩等级
score = int(input("请输入你的考试分数(0-100):"))

if score >= 90:
    # 90分及以上:优秀
    print("等级:优秀")
    print("太棒了,继续保持!")
else:
    if score >= 80:
        # 80-89分:良好
        print("等级:良好")
        print("不错哦,再努力一点就更棒了!")
    else:
        if score >= 60:
            # 60-79分:及格
            print("等级:及格")
            print("及格了,但还有很大进步空间!")
        else:
            # 60分以下:不及格
            print("等级:不及格")
            print("别灰心,下次加油!")
运 行 结 果
请输入你的考试分数(0-100):85
等级:良好
不错哦,再努力一点就更棒了!
✍ 依次输入 95、85、70、50 运行四次,观察四个等级分别走了哪条路(哪个 if 的小弟执行了)。

🤔 想一想:为什么判断顺序要从 90 分开始往下分?如果把 60 分的判断放在最前面会出什么问题?

Python示例 5 · 挑战示例:门票计算器(提前试试)
# 挑战:游乐园门票计算器
# 规则:年龄≤12 或 ≥65 门票10元,其他30元
age = int(input("请输入你的年龄:"))
if age <= 12:
    print("儿童票:10元")
else:
    if age >= 65:
        print("老年票:10元")
    else:
        print("成人票:30元")
运 行 结 果
请输入你的年龄:10
儿童票:10元
✍ 分别输入 8、20、70 运行三次验证。这题要求用 if-else 嵌套完成。

🤔 想一想:这个程序要判断两种「10元」情况,写起来有点绕——下一课学了 elif,一行就能写清楚!

05

易错提醒

把最容易翻车的写法先亮出来,见一次、错一次、就会了。

易错点 1

if 后面忘记写冒号

✗ 错误写法
if score >= 90
    print("优秀")
✓ 正确写法
if score >= 90:
    print("优秀")
为什么:if 条件后面的英文冒号 : 是语法的一部分,少了它电脑就不知道条件到哪结束。这是 if 最常见的报错之一。
易错点 2

if 下面的代码忘记缩进

✗ 错误写法
if height >= 120:
print("可以玩过山车")
✓ 正确写法
if height >= 120:
    print("可以玩过山车")
为什么:冒号后面的代码必须缩进(按 Tab),否则电脑认为它不属于 if。缩进是 Python 用来分组代码的「队形」。
易错点 3

把比较的 == 写成赋值的 =

✗ 错误写法
if score = 90:
✓ 正确写法
if score == 90:
为什么:一个等号 = 是「把右边的装进左边盒子」;两个等号 == 才是「比一比两边一样吗」。if 后面要的是比较,必须用 ==。
06

课堂练习(分层)

基础题人人过关,进阶题鼓励尝试,挑战题给学有余力的孩子。参考答案给老师做巡视对照。

A组 · 基础(人人必做)课堂完成,老师巡回指导
  1. 运行成绩等级判断器,分别输入 95、85、70、50,把四个输出结果写在练习本上。 (提示:不够 90 就往 else 里走,看它一层层怎么分。)
  2. 把 if 后面的条件改成 score > 90 试试,输入 90 分结果变了吗?想想为什么。 (提示:>= 包含等于,> 不包含。) 参考答案:90 分本来优秀,用 > 就变成良好——边界值最容易出错。
B组 · 进阶(鼓励尝试)课堂完成,老师巡回指导
  1. 写「成年人判断器」:输入年龄,≥18 输出"成年人",否则输出"未成年人"。 (提示:if age >= 18: 一行 if 一行 else 就够。)
  2. 给成绩判断器加一句提示:分数小于 0 或大于 100 时输出"输入错误"。 (提示:先判断分数是否在 0~100 之间,再判断等级。) 参考答案:把非法输入挡在最外层,用嵌套 if 包住等级判断。
C组 · 挑战(学有余力)课堂完成,老师巡回指导
  1. 写「三个数比大小」:输入三个数,输出最大的那个。 (提示:先比前两个,把大的那个再跟第三个比(嵌套 if)。)
  2. 写「门票计算器」:年龄≤12 或 ≥65 门票 10 元,否则 30 元。 (提示:用两层 if-else:先判断是否 ≤12,else 里再判断是否 ≥65。)
07

闯关小测

收尾前 10 分钟,用口答 / 举手抢答把今天的关键点过一遍。

闯关 1先举手回答,再对答案

if 语句的条件后面要加什么符号?

答案:英文冒号 :。

💡 if 条件: ——冒号是 if 的固定配件。

闯关 2先举手回答,再对答案

if 下面缩进的代码,什么时候执行?

答案:条件成立(True)时才执行。

💡 不成立就跳过,直接看后面的代码(或走 else)。

闯关 3先举手回答,再对答案

判断相等用几个等号?赋值用几个等号?

答案:判断相等 ==,赋值 =。

💡 == 比一比,= 装进去,别搞混!

闯关 4先举手回答,再对答案

else 自己带条件吗?它什么时候执行?

答案:不带条件;if 条件不成立时执行 else。

💡 else = 否则,管「剩下的所有情况」。

闯关 5先举手回答,再对答案

5 > 3 的结果是什么?6 == 7 的结果呢?

答案:True;False。

💡 比较的结果只有 True(真)和 False(假)两种。

08

小结 · 作业与预告

用一句话带走今天的内容;作业分层布置,作品记得保存进成长档案。

🖍️本课小结(一句话 + 板书核心词)
一句话带走程序第一次长出「大脑」:用 if 让电脑根据条件做选择,做一个会判断成绩等级的程序。
if 条件:冒号 : 不能丢缩进 = Tab比较 > < >= <= == !=== 比较 / = 赋值if-else 二选一True / False
必做 · 人人过关
  1. 必做题:写「门票计算器」——输入年龄,≤12 或 ≥65 门票 10 元,否则 30 元,输出应付金额。
  2. 把今天的主项目保存为「第4课_成绩等级.py」放进作品文件夹(老师检查)。
选做 · 鼓励挑战
  1. 选做题:写「游乐园安全提醒」——输入身高,≥120 提示可以玩过山车,≥90 提示可以玩碰碰车,否则建议去沙池(用嵌套 if)。
  2. 选做题:把成绩判断器改成分数等级制:≥85 优秀、≥70 良好、≥60 及格、否则加油(自己定边界并写清注释)。
思考 · 烧脑一下
  1. 思考题:if 语句里的条件除了比大小,还能比什么?试试 if "abc" == "abc": 看会不会打印 True。
  2. 想一想:如果把成绩判断器里所有 if 都换成独立的 if(不用嵌套和 else),输入 95 分会打印出几行?为什么?
👉 下节课预告:下一课《多分支选择》:用 elif 让程序在「多种情况」里一次选一种,代码不再一层套一层——做出石头剪刀布游戏!