中三 ICT|Python 循环与函数 备课指引(导师用)|for/while、range、累加器、return
- 2026-11-12
学生写得出 for i in range(5),但你叫他加总一到十,他会写 print(1+2+3)。这一堂要教的不是语法,而是“一个变数记住中途结果”这个想法。
本堂目标 学生能够:① 用 for 加 range(1, 11) 加总 1 到 10 得 55,并讲出 range 的上限不包含在内;② 写出累加器三步(先设 total = 0、循环内 total = total + i、循环后才 print),并解释为什么归零要在循环之前;③ 定义一个带参数与 return 的函数,例如 def average(nums) 回传平均值,并讲出参数、区域变数与回传值三者的分别。
01 先备知识(开课前 3 分钟快检)
以下任何一项未过关,本堂就会卡住,先补该项:
| 技能 | 快检题 | 过关标准 |
|---|---|---|
| 变数 | x = 5 之后再写 x = 7,x 是多少? | 7,后面的指派盖过前面 |
| 缩排 | Python 用什么表示“这几行属于循环”? | 缩排,通常是四个空格 |
| 课本函数 | print 与 input 的分别是什么? | print 输出到萤幕,input 由键盘读入字串 |
02 课堂流程(45 分钟)
| 时间 | 环节 | 导师做什么 | 学生做什么 |
|---|---|---|---|
| 0-6 分钟 | 先手算 | 叫学生手算 1 加到 10,写出 55,再要求用程式一次算完 | 手算得 55,意识到要循环 |
| 6-16 分钟 | for 与 range | 示范 range(1, 11) 印出 1 到 10,改 range(1, 12) 看分别 | 能讲出上限不包含 |
| 16-26 分钟 | 累加器三步 | 在黑板分三行写 total = 0、total = total + i、print(total) | 能写出完整四行并执行 |
| 26-34 分钟 | while 与停止条件 | 用 while 重做同一题,故意漏 i = i + 1 示范无限循环 | 能指出停止条件在哪一行 |
| 34-40 分钟 | 函数与 return | 把加总包成 def add_to(n),再示范 return 与 print 的分别 | 能写出一个带 return 的函数 |
| 40-45 分钟 | 离场检查 | 收三题即场批,指出要补哪一幕 | 交三题 |
03 讲解脚本(照着说就可以)
第一幕:第一幕:range 的上限不包含在内
“for i in range(1, 11) 会印 1 到 10,不会印 11。为什么?因为 range 讲的是‘由第一个数开始,去到第二个数之前停’。所以想加到 10,就要写 11;想印五次,就写 range(5),等同 range(0, 5)。第三个参数是步长:range(2, 11, 2) 得 2、4、6、8、10,加起来 30。如果你写 range(1, 10),加起来是 45 不系 55,差了个 10,这个错最少人发现,因为程式照跑,只系答案静静地错。”
上限前停一格;想加到 n 就写 n+1。
第二幕:第二幕:累加器要先归零,而且在循环之前
“四行:total 等于 0;for i in range(1, 11);缩排写 total 等于 total 加 i;循环完之后 print。为什么归零要在外面?如果你把 total 等于 0 写在循环里面,每一圈都会清空,最后只会印出 10。为什么 print 要放外面?放里面会印十次中途结果,你会见到 1、3、6、10、15、21、28、36、45、55,其实这串数字很有用,是每个阶段的和,但如果题目问总和,就只要最后一个。这个变数叫累加器,其他常见版本是计数器 count 加一、乘积 product 乘 i。”
归零在外、print 在后;放错位置答案就静静地错。
第三幕:第三幕:参数是入口,return 是出口
“def average(nums) 冒号,缩排写 total 等于 0,for n in nums 累加,最后 return total 除 len(nums)。三个名词要分清楚:nums 是参数,呼叫时才拿到值;total 是区域变数,函数做完就消失;return 把结果交出去,外面要用就要接住,例如 ans 等于 average 清单。最常混淆的是 print 与 return:print 只显示,函数外面拿不到;return 交出去,但本身不会显示。所以写完函数要自己印一次答案,否则你会以为函数无效。”
参数入、return 出;print 不等于 return。
04 必教题型与步骤
| 题型 | 例子 | 步骤 | 答案 |
|---|---|---|---|
| 循环加总 | 用 for 加总 1 到 10,写出完整程式。 | (1)设 total = 0(2)for i in range(1, 11)(3)缩排累加(4)循环后 print | total = 0;for i in range(1, 11): total = total + i;print(total) 得 55 |
| while 与停止条件 | 用 while 重做同一题,并指出停止条件。 | (1)设 i = 1 与 total = 0(2)while i <= 10(3)循环内累加并 i = i + 1(4)print | 停止条件是 i <= 10;漏写 i = i + 1 会无限循环 |
| 累加器位置 | 以下程式只印出 10,错在哪里?for i in range(1, 11): total = 0; total = total + i | (1)找 total = 0 的位置(2)判断是否在循环内(3)移出循环(4)再执行核对 | total = 0 被缩排入循环,每圈重设;移出循环即得 55 |
| 函数与回传 | 写一个函数回传 2 到 10 之间所有偶数的和。 | (1)def 名称带参数(2)total = 0(3)for n in range(2, 11, 2) 累加(4)return total 并在外部 print | def even_sum(): total = 0; for n in range(2, 11, 2): total += n; return total,得 30 |
合理性检查(一定要教):合理性检查:1 到 10 的总和必须是 55,若得 45 表示 range 上限错一格;1 到 5 的平方和也是 55,两个 55 要用不同算式核对,不要互相当证据;偶数 2 到 10 合共五个数,和 30,若算出 25 表示漏了 10;5 的阶乘是 120,用乘积累加器时 product 必须由 1 开始,由 0 开始永远得 0;循环次数可以用手数,3 乘 4 的嵌套循环一定是 12 次,不是 7 次。
05 独立练习三题
| 题目 | 答案 | 想观察什么 |
|---|---|---|
| 写一个 for 循环印出 1 到 20 的单数。 | for i in range(1, 21, 2): print(i) | 步长 2,由 1 开始 |
| 写一个函数回传三个数的平均,并用 62、78、85 测试。 | def average(a, b, c): return (a + b + c) / 3,得 75.0 | return 之后要 print 才见到 |
| 为什么 while 循环要特别小心?举一个出错例子。 | 停止条件永远成立就会无限循环,例如漏写 i = i + 1,程式不会停 | 每次写 while 都先写停止条件 |
06 学生常见错误与纠正句
| 错误 | 学生通常这样写 | 导师这样说 |
|---|---|---|
| range 少一格 | “range(1, 10) 就系 1 到 10。” | “range 停在上限之前,所以系 1 到 9,和系 45。要写 11,先得 55。” |
| 累加器归零放了在循环内 | “total 等于 0 写入循环方便些。” | “每圈都清零,最后只余最后一个数 10。归零要放循环之前,print 放循环之后。” |
| print 当成 return | “我个函数有 print,所以外面用得到。” | “print 只系显示,函数外面拿到的是 None。要用 return 交出去,再在外面 print。” |
| 缩排不一致 | “缩排只系好不好看。” | “Python 靠缩排判断边几行属于循环,混用空格与 Tab 会出 IndentationError,一行四个空格最稳。” |
07 家课建议(直接指到练习卷题号)
- 章节练习:用 for 加总 1 到 100,再用公式核对 Python 章节,练习第一题
- 章节练习:把加总包成函数,改参数测试 10、100、1000 Python 章节,练习第二题
- 延伸:用嵌套循环印一个 3 行 4 星的长方形,数出总共几多粒星 Python 章节,练习第三题
08 离场检查(最后 5 分钟)
| 题目 | 答案 | 判定 |
|---|---|---|
| range(1, 11) 包不包括 11? | 不包括,包 1 到 10 | 答错就重教第一幕 |
| 累加器为何要在循环之前归零? | 在循环内归零会每圈清空,只余最后一个值 | 答不出就重教第二幕 |
| return 与 print 的分别? | return 把值交回呼叫者,print 只显示 | 混淆就重教第三幕 |
09 导师常问
要教 list comprehension 吗?
中三不需要;先让学生写得出四行基本循环,语法糖留到高中。
学生写 while True 加 break 可以吗?
可以但先不鼓励;考试与批改看的是停止条件是否清楚,while True 容易掩盖逻辑。
要不要教例外处理?
这一堂不教;输入错误留到档案与资料处理那一章,先巩固循环与函数。
本页为 TutorZone 导师备课指引,内容由 TutorZone 团队编写;题目与流程为原创,并非任何学校或出版社的教材。


