Python基础 | if 语句

为什么学 if?它是代码的「红绿灯」
小明的早晨
- 如果下雨 → 取消晨跑,改背单词
- 否则如果晴天 → 先跑 5 公里,再买早餐
- 否则(阴天)→ 骑共享单车上学
if 语句的本质
让程序根据条件执行不同操作,像给代码装上「判断力」。这是编程从「重复劳动」到「智能决策」的关键一步。
单条件判断:小明的晨跑计划
👉 场景:根据天气决定是否晨跑
天气 = "雨天" # 试试改成「晴天」或「阴天」
if 天气 == "雨天": # 「==」是「是否相等」的判断
print("🌧️ 下雨了!今天在家背英语单词(目标30个)")
背单词数量 = 30
else:
print("☀️ 出发晨跑!先跑2公里再买包子~")
背单词数量 = 10
print(f"今日计划已更新,晚上检查{背单词数量}个单词!")
运行效果对比:
| 天气 | 输出结果 | 背单词数 |
|---|---|---|
| 雨天 | 🌧️ 下雨了!…(目标 30 个) → 晚上检查 30 个 | 30 |
| 晴天 | ☀️ 出发晨跑!… → 晚上检查 10 个 | 10 |
代码拆解:
if 条件:后必须加冒号:,下一行缩进(4 个空格或 Tab)else是「否则」,匹配所有不满足 if 的情况
多条件判断:小明的成绩分级器
👉 场景:根据分数给出学习建议
分数 = 85 # 试试改成60/95/59
if 分数 >= 90:
print("🎉 恭喜!获得「学霸勋章」,周末奖励看电影~")
elif 分数 >= 70: # elif = else if,中间条件
print("📚 成绩良好!薄弱章节:函数与循环,本周重点突破")
elif 分数 >= 60:
print("⚠️ 刚好及格!下周每天加练1道编程题")
else:
print("❌ 不及格...启动「错题本计划」,明天找老师补课")
小明的专属彩蛋
当分数 = 85 时,输出为
📚 成绩良好!薄弱章节:函数与循环,本周重点突破
(小明:刚好避开写检讨,逃过一劫!)
逻辑图
分数 >=90 → 学霸
↓
分数 >=70 → 良好
↓
分数 >=60 → 及格
↓
else → 不及格
嵌套 if:小明的「求生欲」测试
👉 场景:帮小明回复女神的消息
女神心情 = "开心"
小明的回复 = "周末去看电影吗?"
if 女神心情 == "开心":
if 小明的回复 == "周末去看电影吗?": # 嵌套if
print("女神:好呀!我想看《情书》~")
else:
print("女神:今天不太想出门...")
else:
print("女神:最近有点忙,下次吧T_T")
小明的小心机:
- 当女神开心时,必须精准提问才能约成功
- 嵌套 if 适合「条件里套条件」的复杂场景(比如先判断天气,再决定穿什么衣服)
if 的「3 大易错点」
漏掉冒号或缩进
# 错误!缺少冒号,红报错
if 天气 == "晴天" # ❌ 缺少:
print("跑步")
# 正确✅
if 天气 == "晴天":
print("跑步")
混淆「==」和「=」
# 错误!把判断写成了赋值(永远True)
if 及格 = True: # ❌ 这里应该是 ==
print("及格")
# 正确✅
if 及格 == True:
print("及格")
条件顺序错误
# 错误!高分被低分条件拦截
分数 = 95
if 分数 >= 60: # 先判断及格,后面的条件不会执行
print("及格")
elif 分数 >= 90: # ❌ 永远不会走到这里
print("学霸")
# 正确✅ 从高到低判断
if 分数 >= 90:
...
elif 分数 >= 60:
...
避坑口诀:冒号缩进不能少,双等判断才是比,条件顺序从高到低
实战:小明的「健康饮食助手」
场景:根据身高体重给小明建议(BMI 公式:体重 kg/(身高 m)^2)
身高 = 1.75 # 米
体重 = 70 # 公斤
bmi = 体重 / (身高 ** 2)
if bmi < 18.5:
print(f"小明,你的BMI是{bmi:.1f},偏瘦!建议每天多吃1个鸡蛋")
elif 18.5 <= bmi < 24:
print(f"BMI{bmi:.1f},正常!继续保持每周3次运动~")
else:
print(f"BMI{bmi:.1f},超重!本周晚餐减半,周末爬梧桐山!")
小明实测:
- 输入 70kg→正常(开心)
- 输入 80kg→超重(代码建议爬山,真实减肥计划启动!)
写给小明的「条件思维」
- 用「如果… 那么…」造句:把生活中的选择写成 if 语句(如「如果地铁挤,那么打车」)
- 先画流程图:复杂条件先纸上画箭头,再转代码(避免逻辑混乱)
- 多测试边界值:比如 60 分(及格线)、0 分(特殊情况),确保代码健壮
总结:小明已掌握的「判断魔法」
✅ 单条件判断(if-else):根据天气决定行动
✅ 多条件判断(if-elif-else):成绩分级、BMI 计算
✅ 嵌套判断:处理「条件里的条件」(如女神的心情 + 回复内容)
✅ 避坑:冒号、缩进、== 的正确使用 本周挑战:帮小明设计「赖床闹钟」!
条件:
- 如果是工作日(周一到周五)→ 闹钟响 3 次,每次间隔 5 分钟
- 如果是周末 → 闹钟响 1 次,附带消息「再睡 10 分钟吧~」
(💡 提示:用星期 = "周一"模拟,for循环实现闹钟重复)
报错急救箱:
遇到IndentationError(缩进错误)→ 检查 if/else 下的代码是否对齐
遇到SyntaxError: invalid syntax→ 检查冒号是否遗漏