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 座房子都要变大,要改几处数字?
draw_house(-200, 0, 80, "lightyellow")
draw_house( -50, 0, 80, "lightblue")
draw_house( 100, 0, 80, "lightgreen")
draw_house( 250, 0, 80, "lavender")第二步:只改一行
# 变量:给数字和颜色起名字
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)完整版本
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。
模块目录
Python 启蒙