Python 启蒙 · Day 5

变量:可以改变的值

先不讲“数据类型”。让孩子看到:给数字起名字后,只改一个地方,很多地方会一起变。

课堂流程(45 分钟)

01

先制造一点麻烦

让孩子找:如果房子都要变大,代码里有几处 80 要改?

02

引出“带标签的盒子”

house_size = 80,就是把 80 放进叫 house_size 的盒子。

03

用变量替换数字

把 draw_house 里的 80 换成 house_size。

04

只改一行看变化

把 house_size 改成 120,所有房子一起变大。

05

颜色也可以变量化

把 wall_color 改成喜欢的颜色,整排房子一起变色。

教师话术(照着说就行)

"变量像一个贴了标签的盒子。标签叫 house_size,盒子里现在放着 80。"

"等号今天不读等于,读作放进去:把 80 放进 house_size。"

"现在我们不在每座房子里写 80,只写 house_size。"

"只改这一行,猜猜几座房子会变?先猜,再 Run。"

变量怎么讲

名字

house_size

盒子外面的标签

80

盒子里面放的东西

赋值

=

把右边放进左边

课堂代码

第一步:先看到麻烦

让孩子数一数:如果 4 座房子都要变大,要改几处数字?

python
draw_house(-200, 0, 80, "lightyellow")
draw_house( -50, 0, 80, "lightblue")
draw_house( 100, 0, 80, "lightgreen")
draw_house( 250, 0, 80, "lavender")

第二步:只改一行

python
# 变量:给数字和颜色起名字
house_size = 80
wall_color = "lightblue"
 
draw_house(-200, 0, house_size, wall_color)
draw_house( -50, 0, house_size, wall_color)
draw_house( 100, 0, house_size, wall_color)
draw_house( 250, 0, house_size, wall_color)

完整版本

python
import turtle
 
t = turtle.Turtle()
t.speed(6)
 
def draw_house(x, y, size, wall_color):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.setheading(0)
 
    # 墙
    t.fillcolor(wall_color)
    t.begin_fill()
    for i in range(4):
        t.forward(size)
        t.left(90)
    t.end_fill()
 
    # 屋顶
    t.penup()
    t.goto(x, y + size)
    t.pendown()
    t.fillcolor("tomato")
    t.begin_fill()
    for i in range(3):
        t.forward(size)
        t.left(120)
    t.end_fill()
 
# 只改这里,就能控制整排房子
house_size = 80
wall_color = "lightblue"
 
draw_house(-220, -80, house_size, wall_color)
draw_house( -80, -80, house_size, wall_color)
draw_house(  60, -80, house_size, wall_color)
draw_house( 200, -80, house_size, wall_color)
 
t.hideturtle()
turtle.done()

改变量,变村子

给孩子的任务

把 house_size 改成 60、100、130,各运行一次。

把 wall_color 改成 pink、gold、skyblue。

问孩子:为什么只改一行,4 座房子都会变?

最后保存一个自己喜欢的村子版本。

完成标准

孩子能说出 house_size 里放着一个数字。

孩子能把固定数字换成变量名。

孩子能只改变量那一行,让多座房子一起变。

孩子能改 house_size 和 wall_color,做出自己的村子版本。

不要求孩子解释“变量是容器”。能说出“这个名字里面放着一个值”就够了。

做完之后

收尾只问:如果白天和晚上要画不同颜色,Python 怎么自己选?这个问题留到 Day 6。