当增长次数未知时,用while反复检查是否达标。用“上一次未达标、这一次已达标”证明首次达标,特别核对起始已达标时的0次。
□ 能说出while先检查条件、条件为真才进入循环。
□ 能同步更新余额和年数,验证13年、0年与1年边界。
□ 能用前后两次余额解释“首次”,指出循环需要终止条件。
输入约定 模拟基金本金和目标为正数;未达标时假设年增长率必须大于0,初始已达标计0年;不对应真实学校基金收益。
纸面S题与网页小步练习可择一完成,另一套用于课后复核。
L10-S1 saved = 100、target = 150,saved < target是真还是假?
L10-S2 尚未存入任何一周,计数器weeks的初值是什么?
L10-S3 要让saved最终达到目标,每轮该更新saved,还是只更新weeks?
L10-S4 saved从0开始,每周加50;weeks = weeks + ___。达到150需几周?
L10-S5 起始saved = 150,目标150。while saved ___ 150: 用<还是<=才能0次结束?
学习方法 先写预测,再运行核对。结果不一致时,保留原预测并写明修改原因。
按下面四步完成同一个程序。表中各组输入使用同一套计算规则。
预测:先填写表中关键结果;对长时间模型可写估计并注明“估计”。
修改:补全空白,保留主任务变量名和输出语句;每组只改数据区。
运行:逐组运行并对照预测;记录一处修改及其原因。
解释:用关键语句说明结果。迁移题另存程序、按新规则验收。
balance = 1000
target = 10000
rate = 0.20
years = 0
while balance ___ target:
balance = balance * (1 + rate)
years = years + ___
print("首次达标需要", years, "年")
print("达标余额", round(balance, 2), "元")| 起始→目标 元 均20% | 预测 年数 | 运行 年数/余额 | 为何是首次 |
|---|---|---|---|
| 1000 → 10000 | |||
| 10000 → 10000 | |||
| 12000 → 10000 | |||
| 1000 → 1200 |
我的解释 13年达标前的第12年余额约8916.10元。把它与第13年和目标比较,说明“首次”的含义。
修改记录 我改了哪一行?原来的问题是什么?用哪组数据证明已改对?
同桌核对 □ 数据符合范围 □ 已运行全部测试 □ 结果带单位 □ 能解释一条语句
基础题与离堂题必做。应用题有余力选一或课后完成;挑战题留作课后。离堂题独立完成。
L10-A1 基础 起始余额恰等于目标时,years是多少?若条件误写<=,会发生什么?
L10-A2 基础 两个更新balance = balance * (1 + rate)与years = years + 1分别保证什么?
L10-B1 应用 改成每周存50元,从0元到600元,不计增长。另存while程序,写出首次达标周数。
L10-B2 应用 上题目标改650元、初始仍0。写出前一周与达标周的余额,说明首次。
L10-C1 挑战 起始1000、目标10000,但rate = 0。纸面判断原while会怎样,不直接运行;写一个最多100轮的保护条件。
L10-C2 挑战 用第12年8916.10元和第13年10699.32元说明13为何是首次。还需要哪项增长假设支持“之前更少”?
L10-E1 独立完成:n = 0;while n < 3: 下执行n = n + 1。循环几次、结束时n是多少?写出使循环终止的变化。
学习状态 □ 我能独立完成 □ 我需提示 □ 我还要练习
我最需要再练的一点________________________________________________