第 8 课生活中的 if:分段计费
PYTHON 基础语法 · 第 8 / 11 课

🍀 生活中的 if:分段计费

水费、门票、打车费 —— 分段计算三步法
🎯 掌握分段计费三步法🎯 会画阶梯图帮助理解🎯 会测试边界值(≥ 还是 >)
🕐 数学储备:整数计费为主;价格小数只“读”不“算”
课前回顾

🔄上节课我们学了啥?

① if / if-else / if-elif-else;② == 是判断、= 是赋值。抢答:n=30,n >= 30 是 True 还是 False?

📖 知识讲解
🪜

分段计费三步法

所有分段计费题都是这三步:

① 读数量
➡️
② 判断落在哪一段
➡️
③ 套那一段的单价
读数量 → 找区间 → 套公式,一步不乱
💡 小贴士:就像坐滑梯:先看你站在哪一级台阶,再决定怎么滑!
📖 知识讲解
🪜

阶梯图:一眼看懂分段

公园门票:满 30 张每张 48 元,不满 30 张每张 50 元。画成阶梯图:

1~29 张
50 元/张
30 张及以上
48 元/张

买得多更便宜 —— 台阶“往下跳”就是优惠!

💡 小贴士:做分段题先画阶梯图,区间和单价一目了然,比盯题目文字快 10 倍!
📖 知识讲解
🔍

边界侦探:30 到底算哪边?

题目说“满 30 张打折”,那正好 30 张打不打折?打!“满”= >= 30。

29
30
31
50 元
48 元 ✅
30 这个“分界点”属于右边(≥ 30 → 48 元)。橙点就是边界值!
💡 小贴士:每道分段题都拿分界点的数测一测!30 张到底多少钱,一试便知。
📖 知识讲解
🧾

真题长什么样?

看看你们考试里真正的分段题(校本真题 P2021 递阶水费):

用水量价格
不超过 20 吨每吨 3 元
超过 20 吨、不超过 50 吨超出的每吨 4 元
超过 50 吨再超出的每吨 5 元

这是三段阶梯 —— 待会儿例题里我们一起拿下它!

💡 小贴士:算式像切蛋糕:每一段算自己的钱,再加起来!
📖 知识讲解 · 代码
🧾

真题长什么样? · 代码

三段水费预览
n = int(input())
if n <= 20:
    fei = 3 * n              # 全部按 3 元
elif n <= 50:
    fei = 3 * 20 + 4 * (n - 20)   # 前 20 吨 3 元 + 超出 4 元
else:
    fei = 3 * 20 + 4 * 30 + 5 * (n - 50)
print(fei)
💡 小贴士:算式像切蛋糕:每一段算自己的钱,再加起来!
🎯 例题精讲 · 读题
P96公园门票题库 P96
公园门票每张 50 元;一次买满 30 张(30 张及以上),每张便宜 2 元(48 元)。输入购票数量,输出总金额。

📥 输入:一个正整数(购票数量) 📤 输出:输出实际支付金额

📥 输入样例
30
📤 输出样例
1440
🎯 例题精讲 · 解答
P96公园门票 · 解题

🪜 解题三步走

两段:n >= 30 → 每张 48 元;否则 50 元
边界测试:n=30 正好 30 张,满 30 → 48 元 → 30×48=1440
两段用 if-else 就够
⚠️ 易错点:题目说“满 30 张”包含 30 → 条件是 >= 30。交卷前拿 30 测一遍!
参考代码
n = int(input())
if n >= 30:
    print(48 * n)
else:
    print(50 * n)
🎯 例题精讲 · 读题
P2021递阶水费计算(真题)题库 P2021 · 校本真题
小区水费按阶梯收费:不超过 20 吨每吨 3 元;超过 20 不超过 50 吨的部分每吨 4 元;超过 50 吨的部分每吨 5 元。输入用水量,输出总费用(取整数部分)。🕐 两三位数乘加(已学)

📥 输入:一个正整数 N 📤 输出:输出总费用

📥 输入样例
30
📤 输出样例
100
🎯 例题精讲 · 解答
P2021递阶水费计算(真题) · 解题

🪜 解题三步走

画阶梯:0~20 吨 3 元;21~50 吨 4 元;50 以上 5 元
30 吨 = 前 20 吨 ×3 + 超出 10 吨 ×4 = 60+40 = 100
三段用 if-elif-else,每段“切自己的蛋糕”
⚠️ 易错点:第二段不是 4×n!前 20 吨仍按 3 元算,只有“超出的部分”按 4 元 —— 3*20 是固定打底的钱。
参考代码
n = int(input())
if n <= 20:
    fei = 3 * n
elif n <= 50:
    fei = 3 * 20 + 4 * (n - 20)
else:
    fei = 3 * 20 + 4 * 30 + 5 * (n - 50)
print(fei)
🎯 例题精讲 · 读题
P2007骆驼分级(真题)题库 P2007 · 校本真题
商队按骆驼体重分配货物:≥600 公斤是 Heavy(重型);≥400 且 <600 是 Medium(中型);<400 是 Light(轻型)。输入体重,输出等级。

📥 输入:一个整数 weight 📤 输出:输出 Heavy / Medium / Light

📥 输入样例
450
📤 输出样例
Medium
🎯 例题精讲 · 解答
P2007骆驼分级(真题) · 解题

🪜 解题三步走

三段:从大到小判断:先 >=600,再 >=400,剩下的 Light
elif 从上往下“过关卡”,进了门就不回头
注意输出是英文单词,首字母大写!
⚠️ 易错点:elif w >= 400 不用再写 w < 600 —— 能走到这里说明已经 <600 了!这叫“过关卡”思想。
参考代码
w = int(input())
if w >= 600:
    print("Heavy")
elif w >= 400:
    print("Medium")
else:
    print("Light")
✏️ 随堂练习
✏️ P781 水果批发

批发桔子:100 千克及以下每千克 2 元;超过 100 千克,超出的部分每千克 1 元。输入重量,输出总价(整数)。

💡 提示(先自己想,再点开)
两段:n<=100 → 2×n;否则 200 + (n-100)。打底 200 是前 100 千克的钱!
🔓 点开看参考答案
n = int(input())
if n <= 100:
    print(2 * n)
else:
    print(200 + (n - 100))
✏️ 随堂练习
✏️ P499 恐龙园买门票 🦕

身高低于 1.3 米买儿童票 60 元,否则买成人票 120 元。输入身高(小数),输出票价。

💡 提示(先自己想,再点开)
身高是小数 → float(input())!条件 h < 1.3。
🔓 点开看参考答案
h = float(input())
if h < 1.3:
    print(60)
else:
    print(120)
🕵️ 小侦探找错

🕵️ 小侦探找错

满 100 元打 9 折。小明买了正好 100 元,他享受折扣吗?条件应该怎么写?
if jia >= 100: 享受
if jia > 100: 享受
if jia >= 100: 不享受
if jia = 100: 享受
🌟 课堂小结
🎵 计费三步走:读数、找段、套公式;
边界拿分界,一测见分晓(切蛋糕算法:每一段算自己的,再合起来)
  • 分段计费三步法:读数量→判区间→套单价
  • 阶梯图是最快的解题草稿
  • “满 30”= >= 30,边界值必须测
  • elif 从上往下过关卡,进门不回头
  • 第二段公式 = 打底钱 + 超出部分 × 新单价
📚 课后作业 · 到 CodingMAX 提交
难度题号题目考点提示
必做P96公园门票两段计费入门
必做P2021递阶水费(真题)三段阶梯
必做P781水果批发两段+打底
巩固P499恐龙园买门票float+分支 🦕
巩固P669公交卡充值问题三档赠送
巩固P93蜗牛爬行两段计算
挑战P88收费价格小数 .2f
挑战P633冷饮的价格(2)四段计价
挑战P636至少要买几瓶止咳糖浆?按年龄选剂量再算瓶数

✅ 按题号到题库提交,提交前先对照样例自己测一遍!

🥚 编程彩蛋

🥚 家里的账单小管家 🧾

回家找一张水电费账单,用今天的“三步法”算一算:你们家的水费是怎么分段的?每一段多少钱一吨?
把你家的水费规则画成阶梯图,明天带来给大家讲一讲 —— 你就是家里的账单小管家!