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 → 检查冒号是否遗漏

← 返回资讯