Introduction
在本教程中,你将会学习到以下内容:
- 了解什么是Python的turtle库
- 学习如何在本机配置turtle库
- 利用turtle库进行编程
- 掌握常用的turtle库指令
- 基于turtle库开发一个小demo
本教程来源于Real Python,一个风趣幽默的Python学习社区,强烈推荐大家关注。
What’s the turtle library?
turtle
是一个预安装的Python库,它允许用户通过提供的虚拟画布来创建图片和形状。其中,用于屏幕上绘图的笔叫做海龟笔
,这便是该库名称的由来。简而言之,Python海龟库可以帮助新程序员以一种有趣和交互式的方式感受用Python编程是什么样子的。
使用海龟库,人们可以绘制和创建各种类型的形状和图像。
这似乎看起来很酷,对吧?其实这仅是Python海龟库可以绘制的众多不同图像之一,大多数开发人员使用海龟库来绘制形状、创建设计和制作图像。此外,还可以用于创建迷你游戏和动画。
Getting Started With turtle
在正式开始之前,我们需要预先配置和安装Python环境,教程如下。
在开始Python编程之前,大家需要了解什么是库
。在现实世界中,图书馆是一个储存不同类型书籍的地方。你可以在任何时候访问这些书,并从中获取任何你需要的信息,随后再将它们归还到同一个地方。
在计算机世界中,库的工作原理与此类似。根据定义,库是一组重要的函数和方法,您可以通过访问这些函数和方法来简化编程。例如,Python内置的海龟库中便包含了创建映像所需的所有方法和函数。要访问Python库之前,我们可以利用Python内置的关键字import
将其导入到本地的Python环境中。
import turtle
是不是非常简洁?更多关键字信息感兴趣的可以进入此文了解。
Turtle
是一个图形库,这意味着我们需要创建一个单独的窗口(屏幕)来执行每个绘图命令。这里,我们可以通过为它初始化一个变量来创建这个屏幕。
在Python中,变量可以用来存储程序中使用的信息。在为变量赋值时初始化变量。不同于常量,变量可以在程序执行期间多次更改。
现在,让我们正式开始海龟绘画!首先,你需要按以下方法为它初始化一个变量:
s = turtle.getscreen()
不出意外的话,你应该会看到一个单独的窗口打开。
这个窗口便是绘画屏幕,在这里可以查看代码的输出,屏幕中间的黑色小三角形便叫做turtle
,后续的所有操作几乎都是靠它实现。
注意:请记住,当我们为变量命名时,需要选择一个任何正在查看你所编写程序的人都能容易理解的名称。但是,您还必须选择一个便于使用的名称,特别是那些需要我们在整个程序中经常调用它的变量名称!
例如,选择像 my_turtle_screen_name 这样的名称将是冗长乏味的,而像Joe或a这样的名称将显得非常随意。使用单个字母字符,比如本例中的s,可能会更合适,因为它简短易记,s指的是屏幕(screen)。
接下来,初始化变量t。其中Turtle()
是turtle
库所封装的一个类,提供了许多有用的接口,这里我们对其进行实例化。
t = turtle.Turtle()
就像屏幕一样,您也可以给这个变量另一个名称,如a或Jane,甚至my_turtle,但在本教程中,我们采用字母t代替。
现在我们已经具备了一块屏幕和一只海龟画笔。想象一下,屏幕好比是一块画布,而海龟就是一支笔,我们可以让海龟在屏幕上移动。此处的海龟拥有一些可变的特征,如画笔粗细、颜色和移动速度。它总是指向一个特定的方向,并且会朝我们所指定的方向移动:
- 当画笔向上时,意味着当它移动时没有线会被画出来。
- 当画笔向下时,意味着当它移动时会画出一条线出来。
在下一节中,我们将继续探索使用海龟库进行编程的不同方法。
Programming With turtle
在使用Python海龟库进行编程时,我们将首先学习的第一件事是如何让海龟按照期望的方向进行移动。接下来,我们将学习如何自定义海龟及其环境。最后,你将学习到一些可以执行一些特殊任务的增强型命令。
Moving the Turtle
海龟笔可以朝四个方向移动,对应的编程指令对应如下:
指令 编程 等价缩写
-------------------------------------------
前进(Forward) —— t.right(dist) —— t.rt(dist)
后退(Backward) —— t.forward(dist) —— t.fd(dist)
向左(Left) —— t.left(dist) —— t.lt(dist)
向右(Right) —— t.backward(dist) —— t.bk(dist)
这里
dist
指的是移动距离(distance).
我们还可以从当前位置到屏幕上的任何其他任意位置画一条线:
如上所示,屏幕分为四个象限。海龟在程序开始时的初始位置为(0,0)
,这里定义为原点。当我们要将海龟移动到屏幕上的任何其他区域,我们可以使用t.goto(x, y)
进行移动,如:
此时,如果我们想要回到原点,只需输入t.home()
即可,当然你也可以直接以坐标的形式输入t.goto(0, 0)
.
Drawing a Shape
上一小节,我们学会了如何控制海龟前进,下面将教大家绘制实际的形状样式。首先,我们先从一个简单的多边形入手。可以思考一下,一个多边形主要由什么组成?没错,多边形是由多条边和角度所构成,假设我们输入以下的代码:
t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(100)
那么,我们便能画出一个简单的正方形出来,大家可以逐行理解下。
Well done! 我们刚刚成功画了一个正方形,虽然还比较基础,但是举一反三,通过这种方式,我们可以利用海龟来创建不同的形状和图像。
现在,尝试使用这段代码作为模板绘制一个矩形。记住,在矩形中,四条边不相等,所以需要你相应地修改代码。一旦你掌握了海龟的绘画技巧,你甚至可以尝试通过增加边的数量和改变角度来创建更多的形状。
Drawing Preset Figures
假设你想画一个圆,如果你试图用同样的方法画它就像你画正方形一样,那么这将是非常乏味的,你将不得不花很多时间仅仅为了得到一个圆的形状。值得庆幸的是,海龟库为此提供了一个解决方案t.circle(radius)
:
括号内的数字是圆的半径,我们可以通过改变圆的半径值来改变圆的大小。基于类似的方法t.dot(radius)
,我们也可以画出一个点,它只是一个经过填充的圆:
到目前为止,我们已经学习了如何移动海龟,并使用它创建不同的形状。在接下来的几节中,我们将了解到如何根据特定的需求定制属于你自己的图案。
Changing the Screen Color
默认情况下,turtle总是打开一个白色背景的屏幕。但是,你可以用下面的命令随时改变屏幕的颜色:
你可以用其他颜色代替blue
,例如试试green
或red
,我们会得到如上的结果。你可以为你的屏幕使用各种颜色,只需要输入相应的十六进制码即可,如#285078
。要了解关于使用不同颜色的更多信息,请查看Python-turtle库对应的官方文档。
Changing the Screen Title
有时,我们可能想要更改屏幕的标题,这样可以让它更个性化。你可以使用下面的命令改变屏幕的标题:
通过这种方式,我们便可以根据自己的喜好随意更改屏幕标题。
Changing the Turtle Size
除了改变画笔的颜色和屏幕标题外,我们还可以增加或减少屏幕上海龟的大小。注意,这只会改变形状的大小,而不会影响海龟在屏幕上绘制时的输出。尝试输入以下命令: