土豆爸爸TudouBaba.net

一页纸 Turtle 手册

还在完善中…
Python 的 Turtle 库, 更详细的说明见官方文档

意识

我们可以想象有一只海龟, 尾巴上挂着颜料桶, 所以, 它走过的旅途就变成了一幅画

基本框架

坐标系

PythonTrutle坐标系

基本程序框架

# 导入turtle库
import turtle

# 设置笔的状态
p = turtle.Pen()
p.pensize(3)
p.pencolor('gold')

# 笔进行移动
p.forward(100)

# 停止程序, 但绘图窗体不自动关闭. 如果没有它, 绘图窗口在程序运行结束后会自动关闭
turtle.done()
# 导入turtle库
import turtle as t

# 设置笔的状态
t.pensize(3)
t.pencolor('gold')

# 笔进行移动
t.forward(100)

# 停止程序, 但绘图窗体不自动关闭. 如果没有它, 绘图窗口在程序运行结束后会自动关闭
t.done()
from turtle import * # 直接将turtle库的所有函数都导入, 那么之后就不需要声明对象, 而是可以直接调用库里面的函数

color('red', 'yellow')
begin_fill()
while True:
    forward(200)
    left(170)
    if abs(pos()) < 1:
        break
end_fill()
done()

通常, 我们还会载入 time 模块, 来控制海龟画笔的运动速度:

import turtle
import time

设置画布

设置画布大小 & 窗口大小

turtle.setup(800, 600) #设置窗口大小
turtle.screensize(800, 600, 'white') #设置画布大小和背景颜色

很多人发现设置画布大小后, 窗口没有变化, 那是因为混淆了“画布”和“窗口”的概念. 注意, 画布 ≠ 窗口! 窗口是程序的尺寸, 是我们最直接能看到的, 而画布大小则是海龟的活动范围.

那么, 如果画布 > 窗口, 那么窗口就会出现滚动条 但是, 如果画布 < 窗口, 则画布会铺满窗口!!!

设置背景颜色

# 除了使用 screensize 设置背景颜色之外:
turtle.bgcolor('gray')

清理画布

clear()
clearscreen()

设置笔的状态

创建笔

import turtle
t = turtle.Pen()

# 也可以这样:
import turtle as t

设置笔的速度

speed()  # 可以设置的范围在 0-10 之间
  • 取值范围是 0 - 10
    • 0: 最快
      • 我们可以理解为 0 表示没有动画效果, 比如 forward 命令, 是直接从这个点跳跃到那个点, 而不是有走过去的动画
    • 10: 快
    • 6: 正常速度
    • 3: 慢
    • 1: 最慢
  • 注意
    • 如果输入数值大于 10 或者小于 0.5, 则速度自动调整为 0, 也就最快的速度

抬笔

up()
penup()

落笔

down()
pendown()

判断画笔是否落下

isdown()

设置笔的粗细

pensize()
width()
# 注意,没有size()

设置笔的颜色

# 参数可以是英文单词、RGB颜色、十六进制颜色
pencolor('red')
pencolor('#ff0000')

colormode(255)
pencolor(255, 0, 0)#使用 RGB颜色之前, 需要执行 colormode(255) 来开启RGB模式

颜色填充

想要填充颜色, 海龟的轨迹必须在 begin_fill()end_fill() 之间

fillcolor() #设定填充颜色
begin_fill() #开始填充
# 代码
end_fill() #结束填充

判断是否填充

filling()

同时设置笔的颜色和填充颜色

color(笔的颜色, 填充颜色)

基本绘图命令

前进

forward()
fd()

后退

backward()
bk()
back()

右转 / 顺时针旋转

right()
rt()

左转 / 逆时针旋转

left()
lt()

设置朝向

setheading()

画圆

circle()

画点

画点, 也可以认为是画实心圆.

dot()
dot(100, 'blue') #绘制半径为100、蓝色的圆点, 也就是实心圆

设置角度

degrees()

设置弧度

radians()

进阶绘图命令

印章

stamp()

清除印章

clearstamp()

清除多个印章

clearstamps()

克隆

clone()

重置

reset()

清空

clear()
clearscreen()

书写

write()

坐标命令

移动到指定坐标

goto()
  • 默认会连线

设置 x 坐标

setx()

设置 y 坐标

sety()

获取角度

设置角度

返回原点

home()

获取笔的属性

获取位置

position()
pos()

获取方向

towards()

获取 x 坐标

xcor()

获取 y 坐标

ycor() #表示y + coordinate

获取朝向

heading()

获取距离

distance()

海龟状态命令

设置海龟外形

PythonTurtle海龟外形

  • 海龟一共有 7 种外形:
    • 箭头 / arrow
    • 空白 / blank
    • 圆形 / circle
    • 经典 / classic
    • 正方形 / square
    • 三角形 / triangle
    • 海龟 / turtle
shape(name='turtle') #设置为海龟外形

显示海龟

showturtle()
st()

隐藏海龟

hideturtle()
ht()

是否可见

isvisible()

暂停

import time

time.sleep(秒数)

撤销操作

undo()

输入 & 输出

文本输入

textinput()

数字输入

numinput()

监听

listen()

当鼠标点击

onclick()

当鼠标释放

onrelease()

当鼠标拖动

ondrag()

当键盘按下

onkeypress()

当键盘按下并释放

onkey()
onkeyrelease()

当点击屏幕

onclick()
onscreenclick()

数学函数

随机函数

import random #导入 random 库

random.randint(开始值, 结束值) //从开始值到结束值之间的整数中, 随机选择一个

random.choice(非空序列) //从非空序列中, 随机选择一个

动画

延迟

delay()

追踪

tracer()

更新

update()

当达到定时

ontimer()

主循环

mainloop()
done()

其他

保存为 svg 矢量图格式

首先安装 svg_turtle 库: pip install svg_turtle

from svg_turtle import SvgTurtle

t = SvgTurtle(500, 500) #指定图片大小

t.forward(200) #画一条线
t.dot(10) #画一个点, 或者认为是实心圆

t.save_as('/Users/crafter/Desktop/hello.svg') #需要指定保存文件的绝对路径

如果有任何疑问或建议,欢迎直接访问 留言板 / 吐槽区 提交您的反馈。

© 2026 土豆爸爸. All rights reserved.