Turtle库是 Python中自带的用于绘制图形、图像的函数库。原理非常简单:在绘图窗口的正中间,有一只小海龟,用户通过一些指令可以控制小海龟在绘图区域上移动的方向和距离,记录小海龟的移动轨迹,即可完成图形、图像的绘制。Turtle库中提供了大量的函数,除了可以控制小海龟的行为外,还可以设置绘图区域的大小、位置,线条的颜色、样式,填充的位置、颜色等,此外,还提供了一些常见图形的绘制,如圆、多边形等。
更多功能请参考:turtle — 海龟绘图 — Python 3.12.1 文档
导入模块
本示例都使用 Turtle 类的一个实例,命名为 turtle。
import turtle
海龟动作
前进
turtle.forward(distance)
turtle.fd(distance)
参数:distance — 一个数值 (整型或浮点型),海龟前进 distance 指定的距离,方向为海龟的朝向。
后退
turtle.backward(distance)
turtle.back(distance)
turtle.bk(distance)
参数:distance 为一个数值,海龟后退 distance 指定的距离,方向与海龟的朝向相反。不改变海龟的朝向。
右转
turtle.right(angle)
turtle.rt(angle)
参数:angle — 一个数值 (整型或浮点型),海龟右转的角度。
左转
turtle.left(angle)
turtle.lt(angle)
参数:angle — 一个数值 (整型或浮点型),海龟左转的角度。
位置
turtle.goto(x, y=None)
turtle.setpos(x, y=None)
turtle.setposition(x, y=None)
海龟移动到一个绝对坐标。如果画笔已落下将会画线。不改变海龟的朝向。
参数:x — 一个数值,为x坐标;y — 一个数值,为y坐标
turtle.setx(x)
turtle.sety(y)
设置海龟的x、 y坐标,另一坐标保持不变。
参数:x、y — 一个数值,为海龟的对应坐标。
turtle.home()
海龟移至初始坐标 (0,0),并设置朝向为初始方向。
方向
turtle.setheading(to_angle)
turtle.seth(to_angle)
设置海龟的朝向为 to_angle。以下是以角度表示的几个常用方向,0 – 东(右),90 – 北(上),180 – 西(左),270 – 南(下)。
参数:to_angle — 一个数值 (整型或浮点型),面向的方向。
画圆
turtle.circle(radius, extent=None, steps=None)
绘制一个 radius 指定半径的圆。圆心在海龟左边 radius 个单位;extent 为一个夹角,用来决定绘制圆的一部分。如未指定 extent*则绘制整个圆。如果 *extent 不是完整圆周,则以当前画笔位置为一个端点绘制圆弧。如果 radius 为正值则朝逆时针方向绘制圆弧,否则朝顺时针方向。最终海龟的朝向会依据 extent 的值而改变。
圆实际是以其内切正多边形来近似表示的,其边的数量由 steps 指定。如果未指定边数则会自动确定。此方法也可用来绘制正多边形。
画笔控制
粗细
turtle.pensize(width=None)
turtle.width(width=None)
设置线条的粗细为 width。
颜色
turtle.pencolor(*args)
设置画笔颜色,例如 “red”、”yellow” 或 “#33cc8c”。
常用颜色对应名称如下:

turtle.color(*args)
设置画笔颜色和填充颜色。
例如:turtle.color(“red”, “green”),画笔颜色为red,填充颜色为green。
落笔
turtle.pendown()
turtle.pd()¶
turtle.down()
画笔落下 — 移动时将画线。
抬笔
turtle.penup()
turtle.pu()
turtle.up()
画笔抬起 — 移动时不画线。
清屏
turtle.clear()
从屏幕中删除指定海龟的绘图。不移动海龟。海龟的状态和位置以及其他海龟的绘图不受影响。
速度
turtle.speed(speed=None)
速度值从 1 到 10,画线和海龟转向的动画效果逐级加快。
参数:speed — 一个 0-10 范围内的整型数。
填充
turtle.begin_fill()
在绘制要填充的形状之前调用。
turtle.end_fill()
填充上次调用 begin_fill() 之后绘制的形状。
画笔状态
隐藏
turtle.hideturtle()
turtle.ht()
使海龟不可见。当你绘制复杂图形时这是个好主意,因为隐藏海龟可显著加快绘制速度。
显示
turtle.showturtle()
turtle.st()
使海龟可见。