第3课 循环结构——让程序会重复 教学设计+html素材 小学信息科技Python程序设计

资源下载
  1. 二一教育资源

第3课 循环结构——让程序会重复 教学设计+html素材 小学信息科技Python程序设计

资源简介

/ 让教学更有效 精品试卷 | 信息
小学四—五年级 Python 程序设计(第一学期)
教 学 设 计
第3课 循环结构——让程序会重复
课  题 第3课 循环结构——让程序会重复
课  时 第 3 课时(40 分钟)
课  型 新授
教学环境 机房(Windows + Python 3.x + IDLE/Thonny)
授课班级 四年级、五年级
一、学情分析
学生已经学会「判断」,接下来要解决「重复」。让电脑重复做事,学生天然能够理解(「让电脑帮我算 1 加到 100」),难点集中在三个技术细节:
1.range() 的「左闭右开」——range(1, 101) 是 1 到 100,不含 101;
2.累加器的写法——必须先设 total = 0 再循环累加,理解 total += i 的含义;
3.while 与 for 的选用——次数已知用 for,次数未知(靠条件停止)用 while。
本课预设 1 个课时;如学生接受较慢,可将 while 部分拆为第 3、4 两个课时。
二、教学目标
(一)知识目标
1.掌握 for i in range(...) 的语法与 range 的三种写法。
2.掌握累加器模式:初始化 → 循环累加 → 输出结果。
3.掌握 while 循环与 break 语句的作用。
(二)能力目标
1.能判断一个重复任务应当用 for 还是 while。
2.能独立编写「求和、求平均、求阶乘」三类累加类程序。
(三)素养目标
1.感受「用循环把 100 次计算变成 3 行代码」的效率震撼。
2.通过「猜数字」游戏体会人机交互的乐趣。
三、教学重点与难点
项 目 内 容
教学重点 for 与 range 的用法;累加器模式(初始化—累加—输出)。
教学难点 累加器必须先初始化;while True 与 break 的配合;range 的边界(不含终点)。
四、教学准备
· 教师:课件、1 加到 100 的「手算 vs 程序」对比演示、示例代码 4 个。
· 学生:练习卷、草稿纸(鼓励先手算再写码)。
· 素材:1求和.py、2求平均数.py、3偶数的和.py、4猜数字.py。
五、教学过程(共 40 分钟)
环节一 问题驱动:1 加到 100(5 分钟)
提问:「谁能最快算出 1+2+3+…+100?」
学生给出高斯算法后,教师追问:「如果我要 1 加到 100 万呢?」
教师在教师机上现场运行 1求和.py,一秒出结果,形成认知冲击。
total = 0
for i in range(1, 101):
total += i
print(total)
【设计意图】先建立「值得用循环」的价值感,再讲语法。
环节二 新授:for 与 range(12 分钟)
核心图示(板书):
for i in range(1, 101):
↑ ↑ ↑
循环变量 起点 终点(不含!)
range 三种写法对照表(学生记笔记):
写 法 产生的数 循环次数
range(5) 0,1,2,3,4 5 次
range(1, 6) 1,2,3,4,5 5 次
range(1, 10, 2) 1,3,5,7,9 5 次
range(5, 0, -1) 5,4,3,2,1 5 次
上机小实验(3 分钟):让学生写 for i in range(1, 6): print(i),然后自己改数字,观察终点是否包含。自己发现「不含终点」比老师讲十遍有效。
累加器三步法(板书):
① total = 0 先准备一个空盒子
② total += i 每转一圈往里加一点
③ print(total) 转完再打开看
常见错误对比:
错误写法 后 果
忘记写 total = 0 NameError: name 'total' is not defined
total = i(少了 +) 每次覆盖,最后只剩最后一个数
total += i 写在循环外 只加一次
环节三 新授:while 与 break(10 分钟)
过渡提问:「什么时候停,我们事先不知道怎么办?」→ 猜数字游戏。
演示 4猜数字.py:
import random
target = random.randint(1, 100)
count = 0
while True:
guess = int(input("猜1-100:"))
count += 1
if guess > target:
print("大了")
elif guess < target:
print("小了")
else:
print(f"猜对了,共猜{count}次")
break
讲解要点:
① import random 引入随机数工具,randint(1, 100) 得到 1~100 之间的整数;
② while True 表示「一直循环」;
③ break 表示「跳出循环」——找到答案就退出,否则会永远问下去;
④ count += 1 是计数器,用来统计猜了几次。
学生分组对战:两人一组,各运行一次,猜的次数少的胜。
环节四 补充:两种累加(7 分钟)
演示 2求平均数.py——从「求和」到「求和再除」:累加 + 计数器,最后除以个数。
演示 3偶数的和.py——在循环里加一个 if 筛选,说明分支与循环可以叠加使用。
n = int(input())
ans = 1
for i in range(1, n + 1):
ans *= i
print(ans)
关键对比(板书):
total += i ans *= i
初值 0 1
效果 求和 求阶乘(连乘)
注意:为什么连乘的初值必须是 1 而不是 0?——让学生自己回答(乘 0 全变 0)。
环节五 总结与作业(6 分钟)
一句话总结:循环 = 重复做同一件事;for 用于次数已知,while 用于次数未知。
口诀(板书):累加先清零,连乘先设一;range 去尾不去头,跳出循环用 break。
六、板书设计
第3课 循环结构
for i in range(起点, 终点(不含), 步长):
循环体(要重复做的事)
累加三步: total=0 → total+=i → print(total)
求阶乘: ans=1 → ans*=i
while 条件: 次数未知时用
...
break 跳出循环
for 次数已知 | while 次数未知
七、分层作业
★ 完成练习卷第一、二、三题(补全 range 与累加器)。
★★ 完成练习卷第四、五题:求 1~100 中所有偶数的和;求 n 个数的平均数。
★★★ 完成练习卷第六题:改写猜数字游戏,最多猜 7 次,超过则提示「机会用完」。
八、教学反思要点
1.「range 不含终点」这一点是否需要在下节课开头再测一次?
2.累加器忘记初始化是最高频错误吗?可考虑做成一张贴在机房墙上的「避坑口诀」。
3.while True + break 对四年级学生是否偏难?是否应对该部分降低要求?
课后记(教师填写):
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)

展开更多......

收起↑

资源预览