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 ÷ 边数

课堂演示:多边形角度

让学生先预测 rangeleft,再用演示验证:边数越多,每次转角越小。

打开角度演示

正三角形

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 里的数字控制每次转角。

能用循环画出至少两种图形。

能理解重复代码为什么需要被简化。

如果学生在主动改数字、验证结果,这节课就达成了。

做完之后

收尾只问:如果要画房子,循环够不够?下一节把多个图形组合起来。