Turtle库的用法

Turtle(海龟)库是 Python 中一个非常经典且有趣的标准图形库。它通过控制一个屏幕上的光标(那只"小海龟")移动来绘制图形,非常适合编程初学者理解逻辑和坐标系,也能用来创作精美的艺术图案。

由于它是 Python 的标准库,通常无需安装,直接导入即可使用。

以下我为你整理的 Turtle 库核心用法速查手册:

1. 基础设置:画布与画笔

在开始画画前,你需要一个画布和一支画笔。

python 复制代码
import turtle

# --- 1. 设置画布 (窗口) ---
# turtle.setup(width, height, startx, starty)
turtle.setup(800, 600, 100, 100) # 宽800,高600,距屏幕左上角(100,100)

# --- 2. 创建画笔对象 ---
t = turtle.Turtle() 
t.shape("turtle")    # 设置画笔形状为海龟
t.color("blue")      # 设置画笔颜色
t.speed(5)           # 设置绘制速度 (1-10, 0最快)

# --- 3. 设置背景 ---
screen = turtle.Screen()
screen.bgcolor("white") # 设置背景色

2. 核心绘图:移动与控制

这是 Turtle 最常用的部分,控制小海龟怎么走、怎么画。

功能 方法 说明
前进/后退 t.forward(100) 向当前方向前进 100 像素
t.backward(50) 向后退 50 像素
转向 t.right(90) 向右转 90 度
t.left(45) 向左转 45 度
移动到指定点 t.goto(100, 50) 移动到绝对坐标 (100, 50)
t.setx(50) 只改变 X 坐标
t.sety(50) 只改变 Y 坐标
抬笔/落笔 t.penup() 抬起画笔(移动不留痕)
t.pendown() 落下画笔(移动留痕迹)
画圆 t.circle(50) 画半径为 50 的圆

3. 画笔样式控制

你可以随时改变线条的粗细、颜色和填充效果。

python 复制代码
# --- 4. 画笔样式 ---
t.pensize(3)           # 设置线条宽度为 3
t.pencolor("red")      # 设置线条颜色为红

# --- 5. 填充图形 (例如画一个实心圆) ---
t.begin_fill()         # 开始填充
t.circle(50)           # 画圆
t.end_fill()           # 结束填充

# --- 6. 隐藏/显示海龟 ---
t.hideturtle()         # 隐藏海龟图标,只看线条
t.showturtle()         # 显示海龟图标

4. 常用辅助函数

python 复制代码
# --- 7. 其他常用操作 ---
t.home()           # 回到原点 (0, 0),并恢复默认朝向
t.clear()          # 清空画布,但不改变海龟状态
t.reset()          # 清空画布,并重置海龟状态(回到原点、默认设置)
t.write("Hello")   # 在当前位置写文字

5. 完整示例:画一个彩色正方形

这是一个简单的实战代码,帮你串联上述知识点:

python 复制代码
import turtle

# 1. 设置
screen = turtle.Screen()
screen.bgcolor("black")

t = turtle.Turtle()
t.speed(1) # 速度慢一点,看得清楚
t.width(5) # 线条粗一点

colors = ["red", "blue", "green", "yellow"]

# 2. 循环画四条边
for color in colors:
    t.pencolor(color) # 每次换一种颜色
    t.forward(100)    # 画线
    t.right(90)       # 转弯

# 3. 结束
t.hideturtle() # 画完了,隐藏海龟
turtle.done()  # 保持窗口打开,直到手动关闭

💡 两个重要概念

  1. 坐标系 :画布中心是原点 (0, 0)。向右是 X 轴正方向,向上是 Y 轴正方向。
  2. 状态:画笔的状态(颜色、粗细、是否落笔)一旦设置,会一直保持,直到你再次修改它。

你可以直接复制上面的代码运行试试看,感受一下这只"小海龟"的魅力!

相关推荐
天天被压力8 分钟前
【A股分钟级高频数据完全手册 #09】A股历史分时交易数据接口:普通分时怎么批量下
java·人工智能·python
天天被压力16 分钟前
【A股分钟级高频数据完全手册 #10】股票实时行情数据接口Python:公开源实时交易取数
java·人工智能·python
特立独行的猫A10 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
cpolar技术支持10 小时前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
云和数据.ChenGuang11 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
天诰12 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
benchmark_cc13 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
羲云网络16 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
橙橙笔记19 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
小小张说故事19 小时前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python