从积木到代码:9-12岁儿童的Scratch到Python指南
循序渐进的教程,帮助孩子从Scratch积木过渡到真实Python代码,包含具体练习和常见陷阱。
用过几个Scratch项目的孩子通常在10或11岁左右遇到瓶颈:积木对他们想制作的东西来说太简单了。这个瓶颈实际上是引入Python的最佳时机。这份指南提供了一条路径,保留孩子已经理解的Scratch部分(精灵、循环、事件),并将其映射到真实代码中,而不是直接把他们推入语法的深水。
为什么过渡比预期要困难
Scratch隐藏了三样在Python中突然暴露的东西:变量类型、缩进和语法错误。拖过"重复10次"积木的孩子从未需要考虑冒号或括号。第一周使用Python主要是学会容忍红色错误信息而不放弃。提前告诉他们:专业程序员每天都会看到数十次错误信息。这不是他们不擅长的信号。
使用Trinket.io或Replit浏览器版本,这样就没有安装步骤需要先处理。等他们真正感兴趣后,再使用桌面安装(从python.org下载Python 3.12+,加上Thonny作为编辑器)。
将Scratch概念直接映射到Python
明确地逐一对比,而不是从零开始:
- "当绿旗被点击"→ 直接运行
.py文件 - "重复10次"→
for i in range(10): - "无限循环"→
while True: - "如果<>那么"→
if condition: - "询问并等待"→
input("问题: ") - 变量(橙色积木)→
score = 0
让他们先写这个Scratch等价物,因为它几乎是直接翻译:
score = 0
for i in range(5):
score = score + 10
print("Score is now:", score)
运行它,然后问如果range(5)变成range(20)会发生什么。在运行代码之前预测输出是这里要建立的最好习惯。
三个能保持动力的项目
一个猜数字游戏是经典的第一个项目,因为它使用input()、if/elif/else和循环,而且真的像一个真实的程序:
import random
secret = random.randint(1, 20)
guess = 0
while guess != secret:
guess = int(input("Guess a number 1-20: "))
if guess < secret:
print("Too low")
elif guess > secret:
print("Too high")
print("You got it!")
一个基于文字的宠物模拟(喂食、玩耍、睡眠、查看统计)接下来效果很好,因为孩子已经在Scratch中用精灵服装做过类似的东西。现在是字典的时间:pet = {"hunger": 5, "energy": 8}。
第三步,进入turtle图形获得视觉回报:
import turtle
t = turtle.Turtle()
for i in range(4):
t.forward(100)
t.right(90)
这画出了一个正方形,直接回应了Scratch笔工具中的"移动10步、转90度"模式。孩子立即注意到相似性,这对信心的影响远大于任何关于语法的讲座。
处理错误而不失去动力
第一个月内不断预期IndentationError和NameError。不要为他们修复——大声读出错误信息,一起找到它指向的行号。Python的错误通常会明确说出问题所在("需要缩进块"),即使措辞很生硬。几周内,大多数孩子开始比帮助他们的成人更快地读懂跟踪信息。
一个真正的陷阱:Python区分大小写,Scratch不区分。Score和score是不同的变量。这几乎会让每个从积木转过来的孩子都踩坑,所以提前指出,而不是让他们通过挫折去发现。
一个行之有效的粗略四周进度
第一周:变量、print()、input()、基本数学运算符。第二周:if/elif/else配合猜数字游戏。第三周:for和while循环,构建宠物模拟。第四周:函数——将宠物模拟的动作包装成def feed(pet):风格的代码,这是自Scratch自定义积木以来最大的概念飞跃。
不要急着跳过第四周。函数是"程序员"思维真正开始的地方,跳过理解直接做更大项目的孩子往往会写出凌乱的、复制粘贴的代码,难以调试。
如果你的孩子在享受这个转变,Korra Studio有更多初级Python教程和总体计算机科学内容值得接下来探索。
本文由人工智能协助撰写,经 Michal Pilch(CISSP)审核并发布,Korra Studio。
这是来自 Korra Studio 知识库的笔记之一——该平台将每个主题与一对一指导相结合。
免费开始arrow_forward