Python turtle库入门:零基础也能轻松绘制趣味图形
Python turtle库入门:零基础也能轻松绘制趣味图形
对于刚接触Python的新手来说,编程的乐趣往往藏在“看得见的成果”里。而turtle库,正是Python自带的一款“可视化绘图工具”——它就像给你一支可以被代码操控的画笔,通过简单的指令,就能让画笔在屏幕上自动绘制出线条、图形甚至复杂的图案。今天,我们就来全面解锁turtle库的用法,从基础操作到实战案例,让你快速感受编程绘图的快乐。
一、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()
运行后,点击屏幕任意位置,就会在该位置绘制一个小圆。
五、常见问题与注意事项
-
窗口一闪而过:忘记在代码最后添加t.done(),添加后即可保持窗口显示;
-
绘图速度太慢:使用t.speed(0)设置为最快速度(瞬间完成),或调整speed(1-10)的数值;
-
颜色不生效:注意颜色名称的正确性(如“pink”而非“fenhong”),或使用RGB值时需配合t.colormode(255)开启255色模式;
-
图形绘制错误:检查角度和边长的计算,比如正方形的转弯角度是否为90度,五角星是否为144度;
-
代码运行报错:确认turtle库已正确导入,且指令拼写正确(如t.fd()而非t.forwardd())。
六、总结:turtle库的学习价值
turtle库虽然简单,但对于Python新手来说,是入门编程的绝佳工具:
-
直观的可视化效果,能快速激发学习兴趣;
-
通过控制小海龟的行动,理解代码的逻辑流程(顺序、循环、条件);
-
从简单图形到复杂图案,逐步培养编程思维和创造力。
更多推荐


所有评论(0)