Python 启蒙 · Day 3

房子:小图形拼成大作品

这一课让孩子第一次体验“拆开再组合”:墙、屋顶、门一步步出现,最后变成完整作品。

课堂流程(45 分钟)

01

先看房子怎么拆

让孩子说:墙是正方形,屋顶是三角形,门是长方形。

02

先画墙

用上节课循环画正方形,再加填色。

03

抬笔搬家

用 penup/goto/pendown 把画笔搬到屋顶位置。

04

加屋顶和门

每完成一部分就运行一次,看到房子慢慢长出来。

05

改颜色展示

孩子改墙、屋顶、门的颜色,做自己的房子。

教师话术(照着说就行)

"房子不是一个图形,它是几个小图形拼起来的。你看到了哪些?"

"penup 就是把笔抬起来,搬家的时候不画线。"

"goto 就像告诉画笔:去这个位置等我。"

"门歪了没关系,改 goto 里面的数字就能调整。"

课堂代码

课堂演示:坐标探索器

放在第一次使用 goto(0, 100) 之前。先让孩子看到 x 往右、y 往上,再回到代码。

打开坐标探索器

第一步:画墙

python
import turtle
 
t = turtle.Turtle()
t.speed(4)
t.color("black")
t.fillcolor("lightyellow")
 
# 墙:正方形
t.begin_fill()
for i in range(4):
    t.forward(100)
    t.left(90)
t.end_fill()
 
turtle.done()

第二步:搬到屋顶位置

这段接在画墙代码后面,不要单独运行。

python
# 把笔搬到墙的上面
t.penup()
t.goto(0, 100)
t.pendown()
 
# 屋顶:三角形
t.fillcolor("tomato")
t.begin_fill()
for i in range(3):
    t.forward(100)
    t.left(120)
t.end_fill()

完整作品:一座房子

python
import turtle
 
t = turtle.Turtle()
t.speed(4)
t.color("black")
 
# 墙
t.fillcolor("lightyellow")
t.begin_fill()
for i in range(4):
    t.forward(100)
    t.left(90)
t.end_fill()
 
# 屋顶
t.penup()
t.goto(0, 100)
t.pendown()
 
t.fillcolor("tomato")
t.begin_fill()
for i in range(3):
    t.forward(100)
    t.left(120)
t.end_fill()
 
# 门
t.penup()
t.goto(35, 0)
t.pendown()
 
t.fillcolor("sienna")
t.begin_fill()
t.forward(30)
t.left(90)
t.forward(45)
t.left(90)
t.forward(30)
t.left(90)
t.forward(45)
t.end_fill()
 
t.hideturtle()
turtle.done()

改造任务

最后 8 分钟

改墙、屋顶、门的颜色;或者改 goto 里的数字,让门换一个位置。

完成标准

孩子能说出房子由几个小图形组成。

孩子能运行出墙和屋顶。

孩子知道 penup 是抬笔,pendown 是落笔。

孩子至少改过一种颜色或一个位置数字。

对 8-11 岁,坐标准不准不是重点。重点是知道“先抬笔,再搬家,再落笔”。

做完之后

收尾只问:如果要画两座一样的房子,代码要复制两遍吗?下一节给“画房子”这个动作起名字。