跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python turtle 库入门与趣味图形绘制

Python turtle 库是 Python 内置的可视化绘图工具,通过控制“海龟”移动轨迹实现图形绘制。内容涵盖环境准备、核心指令(行动、画笔、屏幕)、实战案例(正方形、同心圆、五角星)及进阶技巧(自定义形状、循环函数、事件绑定)。适合新手快速理解编程逻辑与可视化效果,掌握基础绘图方法后能灵活创作复杂图案。

黑客帝国发布于 2026/3/16更新于 2026/5/2325 浏览

Python turtle 库入门与趣味图形绘制

对于刚接触 Python 的新手来说,编程的乐趣往往藏在'看得见的成果'里。turtle 库是 Python 自带的一款可视化绘图工具——它就像给你一支可以被代码操控的画笔,通过简单的指令,就能让画笔在屏幕上自动绘制出线条、图形甚至复杂的图案。

一、turtle 库是什么?核心原理很简单

turtle 库的灵感源自'海龟绘图'(Turtle Graphics),最早是 Logo 语言的核心功能。它的核心逻辑特别直观:

你可以把屏幕想象成一张白纸,一只带着画笔的'小海龟'在纸上爬行。你通过代码控制小海龟的行动——前进、后退、转弯,画笔会跟着它的轨迹留下痕迹;同时,你还能控制画笔的颜色、粗细,甚至抬起画笔(不留痕迹)、放下画笔(留痕迹)。

关键优势:

  • Python 自带库,无需额外安装,导入即可使用;
  • 语法简单易懂,指令贴近自然语言(如 forward、left、right);
  • 可视化效果即时,能快速看到代码运行结果,提升成就感。

二、入门第一步:环境准备与基础指令

1. 环境准备:无需安装,直接导入

turtle 是 Python 标准库的一部分,只要你安装了 Python 环境(3.x 版本均可),就可以直接在代码中导入使用,无需 pip 安装。

基础导入方式:

# 方式 1:直接导入整个库
import turtle

# 方式 2:导入库并简化名称(推荐,少写代码)
import turtle as t

# 方式 3:导入库中所有函数(不推荐,可能与其他函数冲突)
from turtle import *

推荐使用方式 2(import turtle as t),后续示例均采用这种方式。

2. 核心基础指令:控制小海龟行动

先掌握这些基础指令,就能绘制简单图形了。我们按'行动控制''画笔控制''屏幕控制'分类整理:

(1)行动控制:让小海龟动起来
指令功能说明示例
t.forward(distance) 或 t.fd(distance)向前移动指定距离(单位:像素)t.fd(100) # 向前移动 100 像素
t.backward(distance) 或 t.bk(distance)向后移动指定距离t.bk(50) # 向后移动 50 像素
t.left(angle)向左转指定角度(单位:度)t.left(90) # 向左转 90 度(直角)
t.right(angle)向右转指定角度t.right(45) # 向右转 45 度
t.goto(x, y)直接移动到坐标 (x, y) 的位置t.goto(100, 100) # 移动到 (100,100) 点
t.home()回到初始位置(0,0),朝向正右方t.home() # 回归原点
t.circle(radius, extent=None)绘制圆形:radius 是半径(正为顺时针,负为逆时针),extent 是绘制角度(默认 360 度,即完整圆形)t.circle(50) # 绘制半径 50 的完整圆形
(2)画笔控制:调整线条样式
指令功能说明示例
t.penup() 或 t.pu()抬起画笔,移动时不留痕迹t.pu() # 抬起画笔
t.pendown() 或 t.pd()放下画笔,移动时留痕迹(默认状态)t.pd() # 放下画笔
t.pensize(width) 或 t.width(width)设置画笔宽度t.pensize(5) # 画笔宽度设为 5 像素
t.pencolor(color)设置画笔颜色(支持颜色名称、RGB 值)t.pencolor("red") 或 t.pencolor(255,0,0)
t.fillcolor(color)设置图形填充颜色t.fillcolor("yellow") # 填充色设为黄色
t.begin_fill()开始填充(在绘制图形前调用)t.begin_fill() # 开始填充
t.end_fill()结束填充(在图形绘制完成后调用)t.end_fill() # 结束填充
(3)屏幕控制:调整绘图窗口
指令功能说明示例
t.setup(width, height, x, y)设置窗口大小和位置:width/height 是窗口宽高,x/y 是窗口左上角相对于屏幕的坐标(默认居中)t.setup(800, 600) # 窗口宽 800、高 600,居中显示
t.title(title)设置窗口标题t.title("我的 turtle 绘图") # 窗口标题设为'我的 turtle 绘图'
t.bgcolor(color)设置窗口背景色t.bgcolor("lightblue") # 背景色设为浅蓝色
t.done()保持窗口显示(程序结束时调用,否则窗口会一闪而过)t.done() # 停留显示绘图窗口

三、实战案例:从简单图形到趣味图案

掌握了基础指令,我们通过几个案例实操一下,感受 turtle 的绘图魅力。

案例 1:绘制一个简单的正方形

正方形的特点是 4 条边相等,每个角都是 90 度。核心逻辑:向前走→左转 90 度→重复 4 次。

import turtle as t
# 设置窗口
t.setup(600, 600)
t.title("绘制正方形")
# 绘制正方形
for _ in range(4):
    # 重复 4 次
    t.fd(150)  # 向前走 150 像素
    t.left(90)  # 向左转 90 度
# 保持窗口显示
t.done()

运行代码后,会出现一个居中的黑色正方形。如果想让它更美观,可以添加颜色和填充:

import turtle as t
t.setup(600, 600)
t.title("彩色填充正方形")
# 设置画笔和填充颜色
t.pensize(3)  # 画笔宽度 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()
案例 2:绘制一个彩色圆形和同心圆

利用 t.circle() 函数绘制圆形,通过循环绘制多个不同半径的圆形,形成同心圆。

import turtle as t
t.setup(600, 600)
t.title("彩色同心圆")
t.bgcolor("lightgray")  # 背景色灰色,突出圆形
t.speed(5)  # 设置绘图速度(1 最慢,10 最快,0 瞬间完成)
# 定义颜色列表
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
# 绘制 6 个同心圆
for i in range(6):
    t.pencolor(colors[i])  # 依次使用颜色列表中的颜色
    t.pensize(i + 1)  # 画笔宽度逐渐增加
    t.circle(50 + i * 20)  # 半径逐渐增加(50,70,90...)
    t.pu()  # 抬起画笔
    t.goto(0, -(50 + i * 20))  # 移动到下一个圆的底部起点
    t.pd()  # 放下画笔
t.done()

说明:t.speed() 用于控制绘图速度,0 是最快的(瞬间完成),1-10 速度递增;这里通过循环改变半径、颜色和画笔宽度,让同心圆更有层次感。

案例 3:绘制一个五角星(进阶)

五角星的绘制需要掌握角度计算:五角星的每个尖角对应的内角是 36 度,绘制时每次转弯的角度是 144 度(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)  # 边长 200 像素
    t.left(144)  # 左转 144 度
t.end_fill()  # 让小海龟隐藏,更美观
t.hideturtle()
t.done()

运行后会得到一个经典的红黄配色五角星,hideturtle() 函数可以隐藏小海龟的图标,让图形更简洁。

四、进阶技巧:让绘图更灵活

1. 自定义小海龟形状

默认的小海龟是箭头形状,你可以通过 t.shape() 函数修改,支持的内置形状有:'arrow'(箭头)、'turtle'(海龟)、'circle'(圆形)、'square'(正方形)、'triangle'(三角形)、'classic'(经典箭头)。

import turtle as t
t.shape("turtle")  # 把小海龟改成海龟形状
t.color("green")  # 小海龟颜色设为绿色
t.fd(100)
t.done()
2. 循环与函数:绘制重复图案

对于复杂图案(如花朵、螺旋线),可以结合循环和函数来简化代码。比如绘制一个螺旋线:

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)  # 每次左转 90 度
t.done()
3. 事件绑定:用鼠标/键盘控制绘图

turtle 支持绑定鼠标或键盘事件,实现交互式绘图。比如点击鼠标在对应位置画圆:

import turtle as t
t.setup(800, 600)
t.title("鼠标点击绘图")
# 定义点击事件函数:在点击位置画一个半径 20 的圆
def draw_circle(x, y):
    t.pu()
    t.goto(x, y)
    t.pd()
    t.circle(20)
# 绑定鼠标左键点击事件(点击时调用 draw_circle 函数,传入点击位置的 x,y 坐标)
t.onscreenclick(draw_circle, btn=1)
t.done()

运行后,点击屏幕任意位置,就会在该位置绘制一个小圆。

五、常见问题与注意事项

  1. 窗口一闪而过:忘记在代码最后添加 t.done(),添加后即可保持窗口显示;
  2. 绘图速度太慢:使用 t.speed(0) 设置为最快速度(瞬间完成),或调整 speed(1-10) 的数值;
  3. 颜色不生效:注意颜色名称的正确性(如'pink'而非'fenhong'),或使用 RGB 值时需配合 t.colormode(255) 开启 255 色模式;
  4. 图形绘制错误:检查角度和边长的计算,比如正方形的转弯角度是否为 90 度,五角星是否为 144 度;
  5. 代码运行报错:确认 turtle 库已正确导入,且指令拼写正确(如 t.fd() 而非 t.forwardd())。

六、总结:turtle 库的学习价值

turtle 库虽然简单,但对于 Python 新手来说,是入门编程的绝佳工具:

  • 直观的可视化效果,能快速激发学习兴趣;
  • 通过控制小海龟的行动,理解代码的逻辑流程(顺序、循环、条件);
  • 从简单图形到复杂图案,逐步培养编程思维和创造力。

目录

  1. Python turtle 库入门与趣味图形绘制
  2. 一、turtle 库是什么?核心原理很简单
  3. 二、入门第一步:环境准备与基础指令
  4. 1. 环境准备:无需安装,直接导入
  5. 方式 1:直接导入整个库
  6. 方式 2:导入库并简化名称(推荐,少写代码)
  7. 方式 3:导入库中所有函数(不推荐,可能与其他函数冲突)
  8. 2. 核心基础指令:控制小海龟行动
  9. (1)行动控制:让小海龟动起来
  10. (2)画笔控制:调整线条样式
  11. (3)屏幕控制:调整绘图窗口
  12. 三、实战案例:从简单图形到趣味图案
  13. 案例 1:绘制一个简单的正方形
  14. 设置窗口
  15. 绘制正方形
  16. 保持窗口显示
  17. 设置画笔和填充颜色
  18. 开始填充
  19. 案例 2:绘制一个彩色圆形和同心圆
  20. 定义颜色列表
  21. 绘制 6 个同心圆
  22. 案例 3:绘制一个五角星(进阶)
  23. 开始填充
  24. 四、进阶技巧:让绘图更灵活
  25. 1. 自定义小海龟形状
  26. 2. 循环与函数:绘制重复图案
  27. 绘制螺旋线
  28. 3. 事件绑定:用鼠标/键盘控制绘图
  29. 定义点击事件函数:在点击位置画一个半径 20 的圆
  30. 绑定鼠标左键点击事件(点击时调用 draw_circle 函数,传入点击位置的 x,y 坐标)
  31. 五、常见问题与注意事项
  32. 六、总结:turtle 库的学习价值
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • FPGA 实现 HDMI 输出:从接口原理到 4K 显示全流程
  • 宇树机器人 SDK2 开发指南:从环境搭建到 Demo 测试
  • 华为 HarmonyOS PC 支持一键运行 Linux 环境
  • Java 进阶:时间与日期、包装类及正则表达式
  • ChatGPT Prompt 技巧:优化简历以通过 AI 筛选
  • Python 异步编程与协程实战指南
  • 企业微信 CLI 接入 AI Agent 实践:结合 OpenClaw 与多模型网关
  • RTL8852BE Wi-Fi 6 驱动架构解析与部署指南
  • Stable Diffusion 秋葉 aaaki 整合包安装与云主机配置指南
  • GitNexus:零服务器代码知识图谱工具,赋能 AI 深度理解代码
  • Stable Diffusion 容器化部署:Docker Run、Compose 与 Dockerfile 方案详解
  • Flutter 三方库 webkit_inspection_protocol 在鸿蒙系统的适配指南
  • Open WebUI 部署指南:为本地 Ollama 模型搭建图形化交互界面
  • Qwen3 与 Qwen Agent 智能体开发实战:接入 MCP 工具
  • LeetCode 34 在排序数组中查找元素的第一个和最后一个位置
  • Unity VR Pico 开发环境配置与发布实战指南
  • WebMCP:浏览器 AI 交互新范式
  • LLM 大模型技术实战:Prompt 提示工程策略与技巧总结
  • llama.cpp 性能基准库:参数调优与多场景测试指南
  • C++ STL 常用容器使用详解

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online