`turtle` 是 Python 标准库中用于图形化编程的模块,常用于教学和简单绘图

Bol5261 CSDN会员 Bol5261 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

`turtle` 是 Python 标准库中用于图形化编程的模块,常用于教学和简单绘图。它提供了一个“海龟”(turtle)对象,在画布(screen)上通过命令控制其移动、转向、绘图等行为。

以下是 `turtle` 模块中**常用且核心的方法**(按功能分类整理),适用于 Python 3.10+,覆盖绝大多数教学与基础绘图需求:

---

### 🐢 一、海龟运动控制(Turtle Movement)
| 方法 | 说明 | 示例 |
|------|------|------|
| `forward(distance)` / `fd(d)` | 向前移动指定距离(像素) | `t.forward(100)` |
| `backward(distance)` / `bk(d)` | 向后移动指定距离 | `t.backward(50)` |
| `right(angle)` / `rt(a)` | 右转指定角度(度) | `t.right(90)` |
| `left(angle)` / `lt(a)` | 左转指定角度 | `t.left(45)` |
| `goto(x, y)` / `setpos(x, y)` | 移动到绝对坐标 `(x, y)` | `t.goto(0, 0)` |
| `setx(x)` / `sety(y)` | 单独设置 x 或 y 坐标 | `t.setx(200)` |
| `home()` | 回到原点 `(0, 0)` 并朝向正右方(0°) | `t.home()` |
| `circle(r, extent=None, steps=None)` | 画圆或圆弧:`r>0` 逆时针画,`r<0` 顺时针;`extent` 控制弧度(如 `180` 为半圆) | `t.circle(50, 180)` |
| `dot(size=None, color=None)` | 画一个实心圆点 | `t.dot(10, "red")` |

---

### 🎨 二、绘图状态控制(Pen Control)
| 方法 | 说明 |
|------|------|
| `pendown()` / `pd()` / `down()` | 落笔(开始绘制) |
| `penup()` / `pu()` / `up()` | 提笔(移动不绘线) |
| `pensize(width)` / `width(w)` | 设置画笔粗细(像素) |
| `pencolor(color)` | 设置画笔颜色(支持 `"red"`、`(0.2, 0.8, 0.3)`、`"#FF5733"` 等) |
| `fillcolor(color)` | 设置填充颜色 |
| `begin_fill()` | 开始记录填充路径 |
| `end_fill()` | 结束填充(用当前 `fillcolor` 填满闭合区域) |
| `bgcolor(color)` | 设置画布背景色(作用于 `screen`) |

> ✅ 注意:`fillcolor` + `begin_fill()` + `end_fill()` 必须成对使用,且路径需闭合(如用 `goto()` 回到起点,或 `circle()` 自闭合)。

---

### 🧭 三、方向与状态查询
| 方法 | 返回值 | 说明 |
|------|--------|------|
| `heading()` | `float`(角度) | 当前朝向(0°=东,90°=北) |
| `position()` / `pos()` | `(x, y)` 元组 | 当前坐标 |
| `xcor()` / `ycor()` | `float` | 当前 x 或 y 坐标 |
| `isdown()` | `bool` | 画笔是否落下? |
| `speed(n)` | — | 设置动画速度:`0`(最快,无动画)、`1`(最慢)…`10`(最快有动画) |

---

### 🖼️ 四、画布(Screen)相关方法(常通过 `turtle.Screen()` 或 `turtle.getscreen()` 获取)
| 方法 | 说明 |
|------|------|
| `screensize(w, h, bg)` | 设置画布(可滚动区域)大小与背景色 |
| `setup(width, height, startx, starty)` | 设置窗口尺寸与位置 |
| `title(titlestring)` | 设置窗口标题 |
| `bgcolor(color)` | 同 `turtle.bgcolor()`,设置背景色 |
| `clear()` / `reset()` | 清空屏幕(`reset()` 还重置海龟状态) |
| `exitonclick()` | 点击窗口关闭程序 |
| `mainloop()` / `done()` | 启动事件循环(保持窗口打开) |

---

### ⚙️ 五、其他实用方法
| 方法 | 说明 |
|------|------|
| `hideturtle()` / `ht()` | 隐藏海龟图标 |
| `showturtle()` / `st()` | 显示海龟图标 |
| `write(text, move=False, align="left", font=("Arial",8,"normal"))` | 在当前位置写文本 |
| `shape(name)` | 设置海龟形状(`"arrow"`, `"turtle"`, `"circle"`, `"square"`, `"triangle"`, `"classic"`) |
| `shapesize(stretch_wid, stretch_len, outline)` | 缩放海龟形状(非画笔) |
| `delay(n)` | 设置绘制延迟(毫秒),影响 `speed()` 行为 |

---

### 💡 小贴士(易错点)
- 所有 `turtle.xxx()` 是**函数式调用**(面向过程),但更推荐面向对象风格:  
  ```python
  import turtle
  t = turtle.Turtle()   # 创建独立海龟
  s = turtle.Screen()   # 获取画布
  ```
- 多只海龟可共存:`t1 = turtle.Turtle(); t2 = turtle.Turtle()`,互不干扰。
- 若使用 `turtle.circle()` 画正多边形,可用近似法:
  ```python
  for _ in range(6):  # 正六边形
      t.forward(50)
      t.left(60)
  ```

 

...全文
评论
收藏 已收藏
分享
返回顶部
Bol5261 CSDN会员
Bol5261 新星创作者: Java技术领域 新星创作者: Java技术领域优质创作者: 学术研究与理论基础技术领域 优质创作者: 学术研究与理论基础技术领域
Borter 9 成员 1,312 内容