第十六课:趣味彩蛋——海龟绘图
入门 python教学 · 2026-10-21 · 阅读 3

十六课的最后一课,不学新东西,纯玩。前面我们一直在跟数字、文字打交道,今天让程序画画:用一只"海龟"在屏幕上爬,爬过的地方留下线条。用的全是老朋友——循环和函数。本站「软件」菜单里就有海龟编辑器,不用装任何东西,打开网页就能跟着这课玩。
一、认识海龟
import turtle t = turtle.Turtle() # 召唤一只海龟(屏幕中间的小箭头就是它) t.forward(100) # 向前爬 100 步 t.left(90) # 向左转 90 度 t.forward(100) # 再向前爬 100 步 turtle.done() # 画完,让窗口留住别关
运行后会弹出一扇窗:海龟先往右爬,再往上爬,画出一个直角。海龟听得懂的指令不多,先记这几个:
| 指令 | 意思 |
|---|---|
| t.forward(距离) | 朝当前方向前进 |
| t.backward(距离) | 后退 |
| t.left(角度) / t.right(角度) | 原地左转 / 右转 |
| t.penup() / t.pendown() | 抬笔(移动不留痕)/ 落笔 |
| t.goto(x, y) | 直接瞬移到坐标 (x, y) |
| t.pensize(粗细) / t.color("颜色") | 笔的粗细 / 颜色(如 "red"、"blue") |
| t.circle(半径) | 画一个圆 |
| t.speed(速度) | 爬行速度,0 最快,1 最慢 |
二、从正方形到任意多边形
画一个正方形,无非是"前进、转 90°"重复 4 次——循环的老本行:
import turtle
t = turtle.Turtle()
for i in range(4):
t.forward(150)
t.left(90)
turtle.done()
想一想:正方形转角是 90°,正三角形呢?转 120°。正五边形呢?转 72°。规律是:正 n 边形,每次转 360 ÷ n 度(因为画完一圈总共转了 360°)。把规律写进函数(第十课),想画几边形报个数就行:
import turtle
t = turtle.Turtle()
def polygon(n, length):
for i in range(n):
t.forward(length)
t.left(360 / n)
polygon(6, 100) # 正六边形
turtle.done()
三、五角星与涂色
五角星一笔画,诀窍在转角:每次转 144°,连转 5 次正好回到起点(这个角度先记住,原理是星形的内角关系,感兴趣可以自己量一量)。再加上涂色,就是一颗金灿灿的星星:
import turtle
t = turtle.Turtle()
t.color("orange") # 画笔和填充都用橙色系
t.begin_fill() # 开始记填充范围
for i in range(5):
t.forward(200)
t.right(144)
t.end_fill() # 闭合,涂满
turtle.done()
begin_fill / end_fill 是一对:从 begin 开始,海龟爬过的闭合图形会被 end 时的颜色填满。
四、循环的魔法:万花筒
真正好玩的来了。把"画一个正方形"重复很多次,每次多转一点点,图形自己会开花:
import turtle
t = turtle.Turtle()
t.speed(0) # 最快速度,不然等到天荒地老
colors = ["red", "orange", "purple", "blue", "green"]
for i in range(36):
t.color(colors[i % len(colors)]) # 五种颜色轮着用
for j in range(4): # 画一个正方形
t.forward(150)
t.left(90)
t.left(10) # 整体再转 10°,进入下一朵"瓣"
turtle.done()
36 个正方形,每个偏转 10°,拼成一朵万花筒。这个程序没有任何新语法——就是循环套循环,加上一点颜色轮换。i % len(colors) 是第十三课前学过的取余小技巧:让下标在 0~4 之间循环。
再送你一个螺旋线,体会"每次多走一点"的威力:
import turtle
t = turtle.Turtle()
t.speed(0)
for i in range(100):
t.forward(i * 2) # 每一步比上一步长一点
t.left(91) # 不是 90,是 91——故意差 1°,才会旋起来
turtle.done()
把 91 改成 90 画出来是正方形螺旋,改成 89 又是另一种花纹——参数差 1°,效果天差地别,自己动手试,这就是玩代码的乐趣。
本课小结
· 海龟绘图 = 指挥一只笔:前进、转向、抬落笔、换颜色,就这么几招。
· 正 n 边形每次转 360÷n;五角星每次转 144°。
· 真正出效果的是老知识:循环负责重复,函数负责封装,取余负责轮换。
· 学编程不只有做题——能画出好看的图,同样是本事。
练一练
1. 多边形排队:用第二节的 polygon 函数,先抬笔挪个位置,依次画出正三角形、正方形、正八边形,排成一行。
2. 同心圆:用 circle 从半径 20 画到 100(每次大 20),换不同颜色,画出一组彩虹同心圆(提示:画完一个圆,海龟要回到圆心附近再画下一个,想想 goto 和 penup 怎么配合)。
3. 挑战题:给万花筒换配色或换图形(比如把正方形换成第二节的 polygon(5, ...) 五边形),调出你自己的花纹,截图存下来——这朵"花"可以直接投到作品区。
Python 的十六课到此全部结束。从第一课"认识 Python"到今天,你走完了变量、分支、循环、数据结构、函数、文件、字符串、可视化一整条线。接下来,去学考加油站把这些本事换成分数,或者去作品区把你的项目晒出来吧。
学·教在线
小ta