Python 挑战版 · Day 2
循环:重复可以简化
不直接讲概念,先让学生发现重复、感到麻烦,再用 for 循环解决。
节奏分配(45 分钟)
01
复习旧代码
先运行 Day 1 正方形,让学生重新看到 forward + left 的重复。
02
制造“好麻烦”
问正八边形、正一百边形要写多少行,让学生自己感到重复。
03
引出 for 循环
用 3 行循环代码替代 8 行重复代码,先运行验证效果一样。
04
改 range 和角度
画三角形、六边形、八边形,建立边数和转角的关系。
05
挑战近似圆
用很多小边画出近似圆形,体验“小步多次”。
教师话术
"你看这段代码,forward 和 left 出现了几次?"
"如果是 100 条边,我们真的要写 200 行吗?"
"Python 有一个聪明办法:把重复的事情交给 for。"
"range 控制重复几次,left 控制每次转多少。先改一个,再运行。"
课堂代码
先观察:重复在哪里
不要一上来讲循环。先让学生自己说出 forward 和 left 一直在重复。
python
import turtle
t = turtle.Turtle()
t.color("blue")
t.speed(3)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
turtle.done()基线代码:循环画正方形
运行后确认结果一样,再解释缩进和 range。
python
import turtle
t = turtle.Turtle()
t.color("blue")
t.speed(3)
t.pensize(2)
# range(4) 的意思是:重复 4 次
for i in range(4):
t.forward(100)
t.left(90)
turtle.done()正多边形规律
万能公式
转角 = 360 ÷ 边数
正三角形
range(3) · left(120)
3 × 120 = 360
正方形
range(4) · left(90)
4 × 90 = 360
正六边形
range(6) · left(60)
6 × 60 = 360
正八边形
range(8) · left(45)
8 × 45 = 360
三档挑战
基础:三角形
python
import turtle
t = turtle.Turtle()
t.color("green")
t.speed(4)
for i in range(3):
t.forward(120)
t.left(120)
turtle.done()进阶:六边形
python
import turtle
t = turtle.Turtle()
t.color("orange")
t.speed(4)
for i in range(6):
t.forward(80)
t.left(60)
turtle.done()挑战:近似圆形
python
import turtle
t = turtle.Turtle()
t.color("purple")
t.speed(0)
for i in range(100):
t.forward(4)
t.left(3.6)
turtle.done()完成标准
能说出 range 里的数字控制重复次数。
能说出 left 里的数字控制每次转角。
能用循环画出至少两种图形。
能理解重复代码为什么需要被简化。
如果学生在主动改数字、验证结果,这节课就达成了。
做完之后
收尾只问:如果要画房子,循环够不够?下一节把多个图形组合起来。
模块目录
Python 挑战版