Python Turtle 绘图入门到进阶
Turtle 图形是 Python 内置的「交互式绘图玩具库」,源自 1966 年 Seymour Papert 和 Wally Feurzig 为 LOGO 语言设计的编程学习工具。它通过控制一个虚拟的「带画笔的小海龟」在屏幕上移动来绘制图形——既可以作为零基础入门编程的桥梁,也能用来玩分形、几何艺术甚至简单的互动小游戏。
1. 从零开始:基础绘图操作
1.1 先画个带彩色边的长方形热热身
先运行一段最直观的代码,熟悉 turtle 最核心的几个命令:
1.2 常用命令速查表
把刚才用到和未来高频用的命令整理成表格,方便随时查阅:
2. 提升效率:循环与递归画复杂图形
2.1 用循环画一排整齐的五角星
逐行重复写 5 次绘制角的代码太麻烦了,用 for 循环优化成通用函数:
2.2 用递归画一棵渐变分形树
分形是 turtle 的经典玩法,递归能完美实现「自相似结构」的树枝:
3. 进阶玩法:面向对象、事件与动画
原代码大多用了全局函数风格,但现代 Python 更推荐面向对象(OO)风格——能避免多个海龟同时绘图时的冲突,也更符合工程化代码习惯。
3.1 OO 风格画彩色螺旋
3.2 事件驱动:用键盘控制小海龟
除了自动绘图,turtle 还支持简单的按键交互:
4. 新手必踩坑与最佳实践
4.1 避坑指南
- 忘记
done()或mainloop():如果是全局函数,要用done();如果是 OO 风格用Screen().mainloop(),否则窗口会闪退。 - 坐标原点搞反:turtle 的坐标原点在画布正中间,不是左上角(和大部分图形库不一样)。
- 递归深度过大:分形树/雪花这类递归图形,别把深度设超过 15,否则会报错
RecursionError。 - 多个海龟冲突:用全局函数时要小心,尽量用 OO 风格创建独立的
Turtle实例。
4.2 最佳实践
- 模块化代码:把复杂图形(比如花朵、树)封装成函数,方便复用。
- 关闭自动刷新加速:画复杂图形时,用
screen.tracer(0)关闭自动刷新,画完后手动screen.update()。 - 用
try-finally收尾:确保无论代码是否报错,窗口都能正常关闭或进入循环。 - 添加
hideturtle():画完后把小海龟藏起来,图形更整洁。
5. 推荐学习资源
- Python 官方 turtle 文档:最全最权威的参考手册。
- Michael0x2a 的 Turtle 示例库:有大量酷炫的图形代码。
- Real Python 的 Turtle 入门指南:图文并茂,适合完全零基础的人。
Turtle 虽然简单,但上限不低——你可以用它练循环、递归、面向对象,甚至开发简单的贪吃蛇、打砖块游戏。快打开你的 Python 编辑器试试吧!

