第一次在 Python 里画出会动的东西,大概就是运行 turtle 的那几行代码。它不用安装,直接 import 就能用,像给代码开了一扇看得见的窗户。
turtle 是什么
turtle 说白了就是'海龟绘图'。一只带着画笔的小海龟趴在画布上,你让它往前走、往后转,笔尖就会跟着留下线条。Logo 语言的老玩家对这个概念肯定不陌生,Python 把它放进了标准库里,所以只要有 Python 环境就能开跑。
我喜欢用它来磨手感——改个颜色、调个速度,效果马上出来,特别适合刚学编程的人建立信心。
先让海龟动起来
导入推荐用 import turtle as t,少打几个字,后面示例都这么写。
import turtle as t
下面这些指令够画基础图形了,按'行动''画笔''窗口'分一下。
行动控制
t.forward(d)或t.fd(d):向前走 d 像素t.backward(d)或t.bk(d):向后退 d 像素t.left(angle)/t.right(angle):左转 / 右转角度t.goto(x, y):直接跳到 (x, y) 坐标t.home():回到原点 (0,0),朝向正右t.circle(radius, extent=None):画圆。extent 缺省就是完整的圆;半径正数逆时针,负数顺时针
画笔调整
t.penup()/t.pu():抬笔(移动不留痕)t.pendown()/t.pd():落笔(默认状态,留痕)t.pensize(width):画笔粗细t.pencolor(color):画笔颜色,支持颜色名或 RGB 元组t.fillcolor(color):填充颜色t.begin_fill()/t.end_fill():开始 / 结束填充
窗口控制
t.setup(w, h, x, y):设定窗口大小和位置t.title('标题'):窗口标题t.bgcolor(color):背景色t.done():保持窗口不关闭,记得写在最后
刚开始别急着背,用到哪个查哪个。关键指令就那几个,画正方形时自然就记住了 fd 和 left。
一个正方形,加点颜色
正方形四个边等长,每次走一段然后左转 90 度,循环四次搞定。
import turtle as t
t.setup(600, 600)
t.title("正方形")
for _ in range(4):
t.fd(150)
t.left(90)
t.done()
出来的效果就是一条粗黑线。想好看点,给它上个色:
import turtle as t
t.setup(600, 600)
t.title("彩色正方形")
t.pensize(3)
t.pencolor("blue")
t.fillcolor("pink")
t.begin_fill()
for _ in range(4):
t.fd(150)
t.left(90)
t.end_fill()
t.done()
填充要先 begin_fill(),画完再 end_fill(),顺序别搞反。
同心圆:彩色的圈层
circle() 很好用,想画同心圆就反复调用,每次把半径加大一点。这段代码还顺便改了画笔颜色和粗细,让每一圈看起来都不一样。
import turtle as t
t.setup(600, 600)
t.title("同心圆")
t.bgcolor("lightgray")
t.speed(5)
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
for i in range(6):
t.pencolor(colors[i])
t.pensize(i + 1)
t.circle(50 + i * 20)
t.pu()
t.goto(0, -(50 + i * 20))
t.pd()
t.done()
为了让圆都从底部同一个垂直位置开始画,抬笔移到 (0, -radius) 再落笔。speed() 设成 5 就能看清它一笔笔画,设成 0 会瞬间完成,看个人喜好。
五角星:掌握一个关键角度
五角星的画法就一个要记的数字:转弯 144 度。原理是内角 36 度,外角就是 180 - 36 = 144。边长随意,走 5 次。
import turtle as t
t.setup(600, 600)
t.title("五角星")
t.speed(10)
t.pencolor("red")
t.fillcolor("yellow")
t.pensize(2)
t.begin_fill()
for _ in range(5):
t.fd(200)
t.left(144)
t.end_fill()
t.hideturtle()
t.done()
最后 hideturtle() 把箭头藏起来,只留干净的图形。
几条实用小技巧
换海龟形象
默认是个箭头,t.shape('turtle') 能变成一只小海龟,t.color('green') 顺便上个色,挺可爱的。
画螺旋线
结合循环和递增的距离,一种很省事的复杂图案:
import turtle as t
t.setup(800, 800)
t.speed(0)
t.pencolor("purple")
for i in range(100):
t.fd(i * 2)
t.left(90)
t.done()
鼠标交互
turtle 还能绑定事件,比如点哪里画个圆:
import turtle as t
t.setup(800, 600)
t.title("点哪里画哪里")
def draw_circle(x, y):
t.pu()
t.goto(x, y)
t.pd()
t.circle(20)
t.onscreenclick(draw_circle, btn=1)
t.done()
运行后鼠标左键单击窗口任意位置,一个小圆就出来了。
踩过的坑
- 画完窗口闪退:就是忘了最后那句
t.done()。 - 颜色名写错:比如 pink 打成 pinkk,或者用 RGB 值记得先
t.colormode(255)。 - 速度慢得着急:
t.speed(0)能直接跳到最后,或者 1-10 之间调。 - 图形奇怪:多半是转弯角度算错了,正方形是 90 度,五角星是 144,别记混。
turtle 代码不长,错了好排查,这是它最友好的一面。
最后
turtle 算不上真正意义上的'绘图库',它的价值和当年 Logo 一样——让抽象的逻辑变成立刻能看见的图案。画正方形、五角星只是开始,循环、函数、事件这些概念就是在摆弄它的过程里慢慢熟悉的。如果想在 Python 里快速看到点好玩的成果,turtle 绝对值得花一个下午试试。

