写给小小程序员的代码讲解
9–12 岁 • 不只是运行代码,而是读懂它 • 约 20 分钟
Python 里有一个有趣的模块叫做 turtle(海龟)。它给你一只拿着画笔的小海龟。当你让海龟向前走时,画笔就会在屏幕上留下线条。这一页将带你一行一行地读懂一段真实的 Python 程序,看看它是怎么用海龟画出 六边形和正方形 的。
运行程序时,海龟会从屏幕中央出发,一边走一边画图形。最终的画面是这样的:
仔细看:你能看到三个大六边形互相重叠(所以那一笔看起来特别黑),中等和小的六边形像枝杈一样伸出来,最后还有两个正方形。每一根线条,都只是海龟「向前走」和「转弯」做出来的。
海龟只会两件事:
就这两样!画面上所有的形状,其实都是 走 — 转 — 走 — 转 — 走 … 一直重复。
要画出一个闭合的图形,可以用这个规律:
想要回到起点,转弯的角度加起来必须是 360°。所以,如果一个图形有 N 条相等的边,每个角就要转 360 ÷ N 度。
import turtle t = turtle.Turtle()
import turtle 的意思是告诉 Python:「我要用 turtle 这个模块。」下一行创建一只海龟,并给它起一个简短的外号 t,这样就不用每次都写完整的名字了。
def draw_hex(side_length): t.pendown() for _ in range(6): t.forward(side_length) t.right(60) t.penup()
函数(function)就像一份带名字的食谱。这个食谱叫 draw_hex,它的作用是画一个六边形。side_length 是 参数(parameter) ― 你在使用食谱时填进去的「空格」。draw_hex(250) 的意思就是「画一个边长为 250 步的六边形」。
食谱的步骤:
def draw_square(side_length): t.pendown() for _ in range(4): t.forward(side_length) t.right(90) t.penup()
原理和六边形完全一样,只不过这里循环 4 次,每个角转 90°。两个函数长得非常像 ― 唯一不同的就是边的数量和转弯的角度。
for _ in range(3): draw_hex(250) t.right(90) t.forward(60) draw_hex(100) t.right(90) t.forward(40) draw_hex(120)
这个循环会跑 3 遍。每一遍里,海龟都会:
所以图里能看到 3 组、每组 3 个六边形。(三个大六边形刚好叠在同一个位置!)
t.forward(300) t.right(60) draw_square(270) t.left(30) t.forward(110) t.right(80) draw_square(135) turtle.done()
画完所有六边形之后,海龟走到一个新的位置画了一个大正方形,又走一段画了一个小一点的正方形。最后的 turtle.done() 告诉程序:「画完啦 ― 把窗口留着,让我们好好看看作品。」
使用方法:保存文件后,在终端里输入 python3 draw_shapes.py。(请确认电脑里已经安装了 Python 3。)
小贴士:不要把文件名取成 turtle.py ― Python 自带的内置模块也叫这个名字,会和你自己的文件搞混,导致程序无法正常运行。