Python Turtle 编程

2025年3月17日 | 阅读 15 分钟

Turtle 是一个 Python 库,用于创建图形、图片和游戏。它由 Wally Feurzeig、Seymour PapertCynthina Solomon 于 1967 年开发。它是最初 Logo 编程语言的一部分。

Logo 编程语言在孩子们中很受欢迎,因为它使我们能够以简单的方式在屏幕上绘制精美的图形。它就像屏幕上的一个小对象,可以根据所需位置移动。类似地,turtle 库具有交互式功能,提供了使用 Python 的灵活性。

在本教程中,我们将学习 turtle 库的基本概念、如何在计算机上设置 turtle、使用 Python turtle 库进行编程、一些重要的 turtle 命令,并使用 Python turtle 库开发一个简短但吸引人的设计。

引言

Turtle 是 Python 中预装的库,类似于我们可以绘制图片和精美图形的虚拟画布。它提供了一个屏幕画笔,我们可以用它来绘画。

turtle 库主要旨在将儿童引入编程世界。借助 Turtle 库,新程序员可以了解如何以有趣和互动的方式使用 Python 进行编程。

它对儿童和经验丰富的程序员都有益,因为它允许设计独特的形状、精美的图片和各种游戏。我们还可以设计迷你游戏和动画。在接下来的部分中,我们将学习 turtle 库的各种功能。

开始使用 turtle

在使用 turtle 库之前,我们必须确保进行编程的两个最基本的事情。

  • Python 环境 - 我们必须熟悉工作 Python 环境。我们可以使用 IDLEJupiter Notebook 等应用程序。我们还可以使用 Python 交互式 shell。
  • Python 版本 - 我们的系统必须安装 Python 3;如果没有,请从 Python 官方网站下载。

turtle 是内置库,因此我们无需单独安装。我们只需将库导入到我们的 Python 环境中。

Python turtle 库包含我们创建设计和图像所需的所有重要方法和函数。使用以下命令导入 turtle 库。

现在,我们可以访问所有方法和函数。首先,我们需要创建一个专门的窗口,用于执行每个绘图命令。我们可以通过为其初始化一个变量来实现。


Python Turtle Programming

它将看起来像上图,屏幕中间的小三角形是乌龟。如果屏幕没有出现在您的计算机系统中,请使用以下代码。

示例 -

输出

Python Turtle Programming

屏幕就像画布,乌龟就像一支笔。您可以移动乌龟来设计所需的形状。乌龟具有某些可更改的特征,例如颜色、速度和大小。它可以移动到特定方向,并朝该方向移动,除非我们另有指示。

在下一节中,我们将学习使用 Python turtle 库进行编程。

使用 turtle 编程

首先,我们需要学习如何按我们想要的方式移动乌龟。我们可以自定义像乌龟一样的笔及其环境。让我们学习几个命令来执行一些特定任务。

乌龟可以向四个方向移动。

  • 远期合约
  • 后退

乌龟运动

乌龟可以向前和向后移动,方向与它面对的方向相同。让我们看看以下函数。

  • forward(distance) 或 turtle.fd(distance) - 它使乌龟向前移动一定距离。它接受一个参数 distance,可以是整数或浮点数。

示例 - 3

输出

Python Turtle Programming
  • back(distance)turtle.bkturtle.backward(distance) - 此方法使乌龟沿乌龟行进的相反方向移动。它不会改变乌龟的朝向。

示例 - 2

输出

Python Turtle Programming
  • right(angle)turtle.rt(angle) - 此方法使乌龟向右移动 angle 单位。

示例 - 3

输出

  • left(angle)turtle.lt(angle) - 此方法使乌龟向左旋转 angle 单位。让我们理解以下示例。

示例 -

输出

Python Turtle Programming

屏幕最初分为四个象限。程序开始时乌龟位于 (0,0),称为原点 (Home)

  • goto(x, y=None) 或 turtle.setpos(x, y=None) turtle.setposition(x, y=None) - 此方法用于将乌龟移动到屏幕上的其他区域。它接受两个坐标 - x 和 y。考虑以下示例。

示例 -

输出

Python Turtle Programming

绘制形状

我们讨论了乌龟的运动。现在,我们学习如何实际制作形状。首先,我们绘制多边形,因为它们都由以一定角度连接的直线组成。让我们理解以下示例。

示例 -

输出

Python Turtle Programming

我们可以使用 turtle 绘制任何形状,例如矩形、三角形、正方形等等。但是,在绘制矩形时我们需要注意坐标,因为所有四条边都不相等。一旦我们绘制了矩形,我们甚至可以尝试通过增加边数来创建其他多边形。

绘制预设图形

假设您想绘制一个圆形。如果您尝试以绘制正方形相同的方式绘制它,那将极其乏味,您将不得不花费大量时间只为了那一个形状。幸运的是,Python turtle 库为此提供了解决方案。您可以使用一个命令绘制一个圆形。

  • circle( radius, extent = None, steps = an integer ) - 它用于在屏幕上绘制圆形。它接受三个参数。
    1. radius - 它可以是一个数字。
    2. extent - 它可以是一个数字或 None。
    3. steps - 它可以是一个整数。

使用给定半径绘制圆形。extent 决定绘制圆形的那一部分,如果未提供 extent 或为 None,则绘制整个圆形。让我们理解以下示例。

示例 -

输出

Python Turtle Programming

我们还可以绘制一个点,也称为实心圆。请按照给定方法绘制实心圆。

示例 -

输出

Python Turtle Programming

我们在 dot() 函数中传入的数字是点的直径。我们可以通过改变直径来增加或减小点的大小。

到目前为止,我们已经学习了乌龟的运动和各种形状的设计。在接下来的几节中,我们将学习乌龟及其环境的自定义。

更改屏幕颜色

默认情况下,turtle 屏幕以白色背景打开。但是,我们可以使用以下函数修改屏幕的背景颜色。

示例 -

输出

Python Turtle Programming

我们传递了红色。我们也可以用任何颜色替换它,或者我们可以使用十六进制代码来为我们的屏幕使用各种代码。

添加背景图片

与屏幕背景颜色相同,我们可以使用以下函数添加背景图片。

  • bgpic (picname=None) - 它设置背景图片或返回当前背景图片的名称。它接受一个参数 picname,它可以是字符串、gif 文件名或 "nopic""none"。如果 picname 是 "nopic",则删除背景图片。让我们看以下示例。

示例 -

更改图像大小

我们可以使用 screensize() 函数更改图像大小。语法如下。

语法 -

参数 - 它接受三个参数。

  • canvwidth - 可以是正数,画布的新宽度(以像素为单位)。
  • canvheight - 可以是正数,画布的新高度(以像素为单位)。
  • bg - 它是颜色字符串或颜色元组。新的背景颜色。

让我们理解下面的例子。

示例 -

输出

Python Turtle Programming

更改屏幕标题

有时,我们想更改屏幕的标题。默认情况下,它显示 *Python 教程图形*。我们可以将其个性化,例如 “我的第一个 Turtle 程序”“用 Python 绘制形状”。我们可以使用以下函数更改屏幕标题。

让我们看一个例子。

示例 -

输出

Python Turtle Programming

您可以根据偏好更改屏幕标题。

更改画笔大小

我们可以根据需要增大或减小乌龟的大小。有时,我们需要画笔更粗。我们可以使用以下示例来实现这一点。

示例 -

输出

Python Turtle Programming

如上图所示,画笔是原始大小的四倍。我们可以用它绘制各种尺寸的线条。

画笔颜色控制

默认情况下,当我们打开一个新屏幕时,乌龟以黑色出现并用黑色墨水绘制。我们可以根据两件事改变它。

  • 我们可以改变乌龟的颜色,这是一种填充颜色。
  • 我们可以改变画笔的颜色,这基本上是改变轮廓或墨水的颜色。

如果需要,我们还可以同时更改画笔颜色和乌龟颜色。我们建议增加乌龟的大小,以便颜色的变化清晰可见。让我们理解以下代码。

示例 -

输出

Python Turtle Programming

键入以下函数以更改两者的颜色。

示例 - 2

输出

Python Turtle Programming

说明

在上面的代码中,第一个颜色是画笔颜色,第二个是填充颜色。

用 Turtle 填充图像

颜色使图像或形状非常有吸引力。我们可以用各种颜色填充形状。让我们通过以下示例来理解如何为绘图添加颜色。让我们理解以下示例。

示例 -

输出

Python Turtle Programming

说明

程序执行时,它首先绘制三角形,然后用纯黑色填充,如上述输出所示。我们使用了 begin_fill() 方法,它表示我们将绘制一个要填充的闭合形状。然后,我们使用 .end_fill(),它表示我们已经完成了形状的创建。现在,它可以填充颜色。

改变乌龟形状

默认情况下,乌龟的形状是三角形。但是,我们可以改变乌龟的形状,并且此模块为乌龟提供了许多形状。让我们理解以下示例。

示例 -

输出

Python Turtle Programming

我们可以根据需要改变乌龟的形状。这些形状可以是正方形、三角形、经典、乌龟、箭头和圆形。经典是乌龟的原始形状。

改变笔速

可以改变乌龟的速度。通常,它以中等速度在屏幕上移动,但我们可以增加和减少它的速度。下面是修改乌龟速度的方法。

示例 -

输出

Python Turtle Programming

乌龟的速度可以在 0…10 范围内变化整数值。如果在 speed() 函数中不传递任何参数,它将返回当前速度。速度字符串映射到速度值如下。

0最快
10快速
6正常
3
1最慢

注意 - 如果速度设置为零,则不会发生动画。

一行自定义

假设我们希望在乌龟中进行多项更改;我们可以只用一行代码完成。以下是乌龟的一些特性。

  • 笔颜色应该是红色。
  • 填充颜色应该是橙色。
  • 笔的大小应该是 10。
  • 笔速应该是 7
  • 背景颜色应该是蓝色。

让我们看下面的例子。

示例 -

输出

Python Turtle Programming

我们只用一行就改变了乌龟的特性。要了解此命令,您可以从官方库文档中学习。

改变画笔方向

默认情况下,乌龟在屏幕上指向右侧。有时,我们需要将乌龟移动到屏幕的另一侧。为此,我们可以使用 penup() 方法。pendown() 函数用于再次开始绘图。考虑以下示例。

示例 -

输出

Python Turtle Programming

正如我们在上面的输出中看到的,我们得到了两条平行线而不是一个正方形。

清除屏幕

我们已经涵盖了 turtle 大部分设计概念。有时,我们需要一个干净的屏幕来绘制更多设计。我们可以使用以下函数实现它。

上述方法将清除屏幕,以便我们可以绘制更多设计。此函数只删除现有设计或形状,不更改变量。乌龟将保持在相同位置。

重置环境

我们还可以使用 reset 函数重置当前工作。它恢复 turtle 的设置并清除屏幕。我们只需使用以下函数。

所有任务都将被移除,乌龟将回到其起始位置。乌龟的默认设置,如颜色、大小、形状和其他功能都将恢复。

我们已经学习了 turtle 编程的基本原理。现在,我们将讨论 turtle 库的一些基本和高级概念。

留下印记

我们可以在屏幕上留下乌龟的印记。印记就是乌龟的印记。让我们理解以下示例。

示例 -

输出

Python Turtle Programming

如果我们打印 stamp() 方法,它将显示一个数字,这正是乌龟的位置或印记 ID。我们还可以使用以下命令删除特定的印记。

克隆一只乌龟

有时,我们需要多只乌龟来设计独特的形状。它提供了将当前工作的乌龟克隆到环境中的功能,我们可以在屏幕上移动两只乌龟。让我们理解以下示例。

示例 -

输出

Python Turtle Programming

说明

在上面的代码中,我们将乌龟克隆到变量 c 并调用了 circle 函数。首先,它绘制蓝色圆圈,然后根据 for 循环条件绘制外圆。

在下一节中,我们将讨论如何使用 Python 条件语句和循环语句来使用 turtle 创建设计。

使用循环和条件语句进行 Turtle 编程

到目前为止,我们已经学习了 turtle 库的基本和高级概念。下一步是使用 Python 的循环和条件语句探索这些概念。这将使我们在理解这些概念时获得实用的方法。在进一步之前,我们应该记住以下概念。

  • 循环 - 用于重复一组代码,直到满足特定条件。
  • 条件语句 - 用于根据特定条件执行任务。
  • 缩进 - 用于定义代码块,在使用循环和条件语句时至关重要。缩进就是一组空格。处于相同级别的语句被视为相同的块语句。

让我们理解以下示例。

for 循环

在前面的示例中,我们在代码中编写了多行重复代码。在这里,我们将使用 for 循环实现创建正方形程序。例如 -

示例

我们可以使用 for 循环使其更短。运行以下代码。

示例

输出

Python Turtle Programming

说明

在上面的代码中,for 循环重复执行代码直到计数器达到 4。i 就像一个计数器,从零开始并不断加一。让我们逐步理解上述循环的执行。

  • 在第一次迭代中,i = 0,乌龟向前移动 100 单位,然后向右转 90 度。
  • 在第二次迭代中,i = 1,乌龟向前移动 100 单位,然后向右转 90 度。
  • 在第三次迭代中,i = 2,乌龟向前移动 100 单位,然后向右转 90 度。
  • 在第三次迭代中,i = 3,乌龟向前移动 100 单位,然后向右转 90 度。

完成迭代后,乌龟将跳出循环。

while 循环

它用于运行一个代码块,直到条件满足。当条件为假时,代码将终止。让我们理解以下示例。

示例 -

输出

Python Turtle Programming

正如我们在输出中看到的,我们使用 while 循环绘制了多个圆。每次循环执行时,新圆都会比上一个大。n 用作计数器,我们在每次迭代中指定 n 的值增加。让我们理解循环的迭代。

  • 在第一次迭代中,n 的初始值为 10;这意味着乌龟绘制半径为 10 单位的圆。
  • 在第二次迭代中,n 的值增加 10 + 10 = 20;乌龟绘制半径为 20 单位的圆。
  • 在第二次迭代中,n 的值增加 20 + 10 = 30;乌龟绘制半径为 30 单位的圆。
  • 在第二次迭代中,n 的值增加 30 + 10 = 40;乌龟绘制半径为 30 单位的圆。

条件语句

条件语句用于检查给定条件是否为真。如果为真,则执行相应的代码行。让我们理解以下示例。

示例

输出

Python Turtle Programming

说明

在上面的程序中,我们根据用户输入定义了两种结果。如果输入的数字小于或等于 50,则绘制圆形,否则执行 else 部分。我们输入了 40,因此 if 块被执行并绘制了圆形。

现在让我们来看看使用 turtle 库的一些很酷的设计。

使用 Python Turtle 库的精美设计

我们已经学习了 Python turtle 库的基本和高级概念。我们解释了该库的每一个可能的功能。通过使用它的函数,我们可以设计游戏、独特的形状和许多其他东西。在这里,我们提到了使用 turtle 库的一些设计。

设计 -1 圆形螺旋线

代码

输出

Python Turtle Programming

乌龟将无限期地移动,因为我们使用了无限 while 循环。复制上面的代码,看看奇迹。

设计 - 2:Python 振动圆

代码

输出

Python Turtle Programming

代码

输出

Python Turtle Programming

在上面的代码中,我们定义了曲线函数来在屏幕上创建曲线。当它形成一个完整的心形时,颜色会自动填充。复制上面的代码并运行,您还可以通过添加更多设计来修改它。