Python Turtle 初学者指南

了解 Python turtle

turtle是一个预装的 Python 库,它使用户能够通过为他们提供虚拟画布来创建图片和形状。您用于绘图的屏幕笔称为乌龟,这就是库的名称。简而言之,Pythonturtle库可帮助新程序员以一种有趣且交互式的方式了解使用 Python 进行编程的感觉。

turtle主要用于向孩子介绍计算机的世界。这是理解 Python 概念的一种简单而通用的方式。这使它成为孩子们迈出 Python 编程第一步的绝佳途径。话虽如此,Pythonturtle库并不仅限于小孩子!事实证明,它对于尝试 Python 的成年人非常有用,这对于 Python初学者来说非常有用。

使用 Pythonturtle库,您可以绘制和创建各种类型的形状和图像。这是您可以使用的各种图纸的示例turtle

Python Turtle 初学者指南

酷,对吧?这只是您可以使用 Pythonturtle库制作的许多不同绘图之一。大多数开发人员用于turtle绘制形状、创建设计和制作图像。其他人用于turtle创建迷你游戏和动画,就像您在上面看到的那样。

入门 turtle

在继续之前,您需要做两件重要的事情来充分利用本教程:

  1. Python 环境:确保您熟悉您的编程环境。您可以使用IDLEJupyter Notebook等应用程序使用turtle. 但是,如果您对它们不满意,那么您可以使用REPL进行编程,您将在本教程中使用它。

  2. Python 版本:确保您的计算机上安装了 Python 版本 3。如果没有,那么您可以从Python 网站下载它。有关设置方面的帮助,请查看Python 3 安装和设置指南

好处turtle是它是一个内置库,因此您无需安装任何新软件包。您需要做的就是库导入您的 Python 环境,在本例中就是 REPL。打开 REPL 应用程序后,您可以通过键入以下代码行在其上运行 Python 3:

>>> python3

这会将 Python 3 调用到您的 REPL 应用程序中,并为您打开环境。

在开始 Python 编程之前,您需要了解什么是。在非计算机世界中,图书馆是存放不同类型书籍的地方。您可以随时访问这些书籍,从中获取您需要的任何信息,然后将它们放回原处。

在计算机世界中,图书馆的工作方式类似。根据定义,是一组重要的函数和方法,您可以访问它们以简化编程。Pythonturtle库包含创建图像所需的所有方法和函数。要访问 Python 库,您需要其导入 Python 环境,如下所示:

>>> import turtle

现在您已经拥有turtle了 Python 环境,您可以开始使用它进行编程了。turtle是一个图形库,这意味着您需要创建一个单独的窗口(称为screen)来执行每个绘图命令。您可以通过为其初始化变量来创建此屏幕。

在 Python 中,您使用变量来存储稍后将在程序中使用的信息。您初始化当您分配一个初始值给它一个变量。由于变量的值不是常数,因此在程序执行期间它可能会发生多次变化。

现在,要打开turtle屏幕,您可以通过以下方式为其初始化一个变量:

>>> s = turtle.getscreen()

您应该会看到一个单独的窗口打开:

Python Turtle 初学者指南

这个窗口称为屏幕。您可以在此处查看代码的输出。屏幕中间的黑色小三角形叫做乌龟

注意:请记住,当您命名变量时,您需要选择一个任何正在查看您的程序的人都可以轻松理解的名称。但是,您还必须选择一个方便您使用的名称,特别是因为您将在整个程序中经常调用它!

例如,选择一个像my_turtle_screen_name这样的名字会很乏味地继续输入,而像Joea这样的名字看起来很随机。使用单个字母字符,就像s在这种情况下一样,会更合适。那是因为它简短而甜蜜,而且很清楚地记住了字母s指的是screen

接下来,您初始化变量t,然后您将在整个程序中使用它来引用海龟:

>>> t = turtle.Turtle()

就像屏幕一样,你也可以给这个变量另一个名字,比如aorJane或 even my_turtle,但在这种情况下,你会坚持使用t.

你现在有你的屏幕和你的乌龟。屏幕充当画布,而海龟充当笔。您可以编写乌龟在屏幕上移动的程序。海龟有一些可变的特征,如大小、颜色和速度。它总是指向一个特定的方向,除非你另有说明,否则它会朝那个方向移动:

  • 当它向上时,意味着它移动时不会画线。
  • 当它down 时,意味着它移动时会画一条线。

在下一部分中,您将探索使用 Pythonturtle库进行编程的不同方式。

 

编程 turtle

在使用 Pythonturtle库进行编程时,您将学到的第一件事是如何让海龟朝着您希望的方向移动。接下来,您将学习如何自定义您的海龟及其环境。最后,您将学习一些可以执行一些特殊任务的额外命令。

移动乌龟

海龟可以向四个方向移动:

  • 向前
  • 落后
  • 剩下
  • 正确的

海龟移动.forward().backward()朝着它面向的方向移动。您可以通过转动.left().right()一定程度来改变这个方向。您可以像这样尝试每个命令:

>>> t.right(90)
>>> t.forward(100)
>>> t.left(90)
>>> t.backward(100)

当你运行这些命令时,海龟将向右转九十度,向前走一百个单位,向左转九十度,向后移动一百个单位。您可以在下图中看到它的外观:

Python Turtle 初学者指南

您也可以使用这些命令的缩短版本:

  • t.rt() 代替 t.right()
  • t.fd() 代替 t.forward()
  • t.lt() 代替 t.left()
  • t.bk() 代替 t.backward()

您还可以从当前位置到屏幕上的任何其他任意位置画一条线。这是在坐标的帮助下完成的:

Python Turtle 初学者指南

屏幕分为四个象限。程序开始时海龟最初定位的点是(0,0)。这称为主页。要将海龟移动到屏幕上的任何其他区域,请使用.goto()并输入如下坐标:

>>> t.goto(100,100)

您的输出将如下所示:

Python Turtle 初学者指南

您已经从当前位置到(100,100)屏幕上的点画了一条线。

要将海龟带回其原始位置,请键入以下内容:

>>> t.home()

这就像一个将海龟送回原点的快捷命令(0,0)。这比打字快t.goto(0,0)

 

绘制形状

现在您知道了海龟的运动,您可以继续制作实际的形状。您可以从绘制多边形开始,因为它们都由以特定角度连接的直线组成。这是您可以尝试的示例:

>>> t.fd(100)
>>> t.rt(90)
>>> t.fd(100)
>>> t.rt(90)
>>> t.fd(100)
>>> t.rt(90)
>>> t.fd(100)

您的输出将如下所示:

Python Turtle 初学者指南

做得好!你刚刚画了一个正方形。通过这种方式,可以对海龟进行编程以创建不同的形状和图像

现在,尝试绘制一个矩形,使用此代码作为模板。请记住,在矩形中,所有四个边都不相等。您需要相应地更改代码。一旦你这样做了,你甚至可以尝试通过增加边数和改变角度来创建其他多边形。

绘制预设图形

假设你想画一个。如果你试图用你画正方形的方式来画它,那将是非常乏味的,而且你必须花很多时间来画一个形状。幸运的是,Pythonturtle库为此提供了解决方案。您可以使用单个命令绘制圆:

>>> t.circle(60)

你会得到这样的输出:

Python Turtle 初学者指南

括号内的数字是圆的半径。您可以通过更改其半径值来增大或减小圆的大小。

同样,你也可以画一个dot,它只不过是一个实心圆圈。输入这个命令:

>>> t.dot(20)

你会得到一个这样的实心圆圈:

Python Turtle 初学者指南

括号内的数字是点的直径。就像圆一样,您可以通过更改其直径值来增加或减少点的大小。

到目前为止做得很好!您已经学会了如何移动海龟并用它创建不同的形状。在接下来的几节中,您将看到如何根据您的要求自定义海龟及其环境。

更改屏幕颜色

默认情况下,turtle总是打开一个白色背景的屏幕。但是,您可以随时使用以下命令更改屏幕颜色

>>> turtle.bgcolor("blue")

您可以替换"blue"为任何其他颜色。尝试"green""red"。你会得到这样的结果:

Python Turtle 初学者指南

只需输入它们的十六进制代码,您就可以为您的屏幕使用各种颜色。要了解有关使用不同颜色的更多信息,请查看 Pythonturtle文档

 

更改屏幕标题

有时,您可能想要更改屏幕的标题。你可以让它更个性化,比如"My Turtle Program",或者更适合你的工作,比如"Drawing Shapes With Turtle"。您可以在此命令的帮助下更改屏幕标题:

>>> turtle.title("My Turtle Program")

您的标题栏现在将显示:

Python Turtle 初学者指南

通过这种方式,您可以根据自己的喜好更改屏幕的标题。

改变海龟大小

您可以增加或减少屏幕上海龟的大小以使其更大或更小。这只会更改形状的大小,而不会影响笔在屏幕上绘制时的输出。尝试输入以下命令:

>>> t.shapesize(1,5,10)
>>> t.shapesize(10,5,1)
>>> t.shapesize(1,10,5)
>>> t.shapesize(10,1,5)

您的输出将如下所示:

Python Turtle 初学者指南

给出的数字是海龟大小的参数

  • 拉伸长度
  • 拉伸宽度
  • 轮廓宽度

您可以根据自己的喜好更改这些。在上面给出的示例中,您可以看到海龟外观的明显差异。有关如何更改海龟大小的更多信息,请查看 Pythonturtle文档

更改笔大小

前面的命令只改变了海龟形状的大小。但是,有时您可能需要增加或减少笔的粗细。您可以使用以下命令执行此操作:

>>> t.pensize(5)
>>> t.forward(100)

这会导致如下结果:

Python Turtle 初学者指南

如您所见,您的笔的大小现在是原始大小的五倍(原来是一倍)。试着多画一些不同大小的线,比较它们之间的粗细差异。

 

改变乌龟和笔的颜色

当您第一次打开一个新屏幕时,海龟最初是一个黑色图形,并用黑色墨水绘制。根据您的要求,您可以做两件事:

  • 更改海龟的颜色:这会更改填充颜色。
  • 更改笔的颜色:这会更改轮廓或墨水颜色。

如果您愿意,您甚至可以选择这两者。在更改颜色之前,请增加乌龟的大小,以帮助您更清楚地看到色差。输入此代码:

>>> t.shapesize(3,3,3)

现在,要更改海龟(或填充)的颜色,请键入以下内容:

>>> t.fillcolor("red")

你的乌龟看起来像这样:

Python Turtle 初学者指南

要更改笔(或轮廓)的颜色,请键入以下内容:

>>> t.pencolor("green")

你的乌龟看起来像这样:

Python Turtle 初学者指南

要更改两者的颜色,请键入以下内容:

>>> t.color("green", "red")

你的乌龟看起来像这样:

Python Turtle 初学者指南

在这里,第一种颜色用于笔,第二种颜色用于填充。请注意,更改笔和填充的颜色也会相应地更改屏幕上海龟的颜色。

填充图像

图像中的着色通常会使它看起来更好,不是吗?Pythonturtle库为您提供了为绘图添加颜色的选项。尝试输入以下代码,看看会发生什么:

>>> t.begin_fill()
>>> t.fd(100)
>>> t.lt(120)
>>> t.fd(100)
>>> t.lt(120)
>>> t.fd(100)
>>> t.end_fill()

当你执行这段代码时,你会得到一个用纯色填充的三角形,如下所示:

Python Turtle 初学者指南

当您使用 时.begin_fill(),您是在告诉您的程序您将要绘制一个需要填充的闭合形状。然后,您使用.end_fill()来指示您已完成形状的创建,现在可以对其进行填充.

 

改变海龟的形状

乌龟最初的形状并不是真正的乌龟,而是一个三角形的图形。但是,您可以更改海龟的外观,并且在这样做时确实有几个选择。您可以通过键入以下命令来查看其中的一些:

>>> t.shape("turtle")
>>> t.shape("arrow")
>>> t.shape("circle")

海龟的形状会相应改变,像这样:

Python Turtle 初学者指南

您还可以尝试其他几个选项:

  • 正方形
  • 圆圈
  • 三角形
  • 经典的

经典的形状是原始形状。查看 Pythonturtle文档以了解有关您可以使用的形状类型的更多信息。

改变笔速度

乌龟通常以中等速度移动。如果您想降低或提高速度以使海龟移动得更慢或更快,则可以通过键入以下内容来实现:

>>> t.speed(1)
>>> t.forward(100)
>>> t.speed(10)
>>> t.forward(100)

此代码将首先降低速度并向前移动海龟,然后增加速度并再次向前移动海龟,如下所示:

Python Turtle 初学者指南

速度可以是从 0(最慢的速度)到 10(最高的速度)之间的任意数字。你可以玩弄你的代码,看看海龟会走多快或多慢。

一条龙定制

假设您要将海龟的特征设置为以下内容:

  • 笔颜色:紫色
  • 填充颜​​色:橙色
  • 笔尺寸: 10
  • 笔速: 9

从你刚刚学到的,代码应该是这样的:

>>> t.pencolor("purple")
>>> t.fillcolor("orange")
>>> t.pensize(10)
>>> t.speed(9)
>>> t.begin_fill()
>>> t.circle(90)
>>> t.end_fill()

它很长,但还不错,对吧?

现在,想象一下如果你有十只不同的海龟。改变他们所有的特征对你来说是非常令人厌烦的!好消息是,您可以通过在一行代码中更改参数来减少工作量,如下所示:

>>> t.pen(pencolor="purple", fillcolor="orange", pensize=10, speed=9)
>>> t.begin_fill()
>>> t.circle(90)
>>> t.end_fill()

这会给你一个这样的结果:

Python Turtle 初学者指南

这一行代码改变了整个笔,而您不必单独更改每个特征。要了解有关此命令的更多信息,请查看 Pythonturtle文档

做得好!既然您已经学会了自定义海龟和屏幕,请看一下使用 Pythonturtle库进行绘图时所需的其他一些重要命令。

   

拿起和放下笔

有时,您可能希望将乌龟移动到屏幕上的另一个点,而无需在屏幕上绘制任何内容。为此,您可以使用.penup(). 然后,当您想再次开始绘图时,请使用.pendown(). 使用您之前用于绘制正方形的代码试一试。尝试键入以下代码:

>>> t.fd(100)
>>> t.rt(90)
>>> t.penup()
>>> t.fd(100)
>>> t.rt(90)
>>> t.pendown()
>>> t.fd(100)
>>> t.rt(90)
>>> t.penup()
>>> t.fd(100)
>>> t.pendown()

运行此代码时,您的输出将如下所示:

Python Turtle 初学者指南

在这里,通过在原始程序之间添加一些额外的命令,您获得了两条平行线而不是正方形。

撤消更改

不管你多么小心,总有犯错的可能。不过不用担心!Pythonturtle库为您提供了撤消已完成操作的选项。如果您想撤消您所做的最后一件事,请输入以下内容:

>>> t.undo()

这将撤消您运行的最后一个命令。如果要撤消最后三个命令,则需要键入t.undo()三遍。

清除屏幕

现在,自从您开始本教程以来,您的屏幕上可能有很多东西。要腾出更多空间,只需输入以下命令:

>>> t.clear()

这将清理您的屏幕,以便您可以继续绘图。请注意,您的变量不会改变,海龟将保持在同一位置。如果屏幕上除了原始海龟之外还有其他海龟,那么除非您在代码中明确调用它们,否则它们的绘图将不会被清除。

重置环境

您还可以选择使用重置命令从头开始。屏幕将被清除,海龟的设置将全部恢复为默认参数。您需要做的就是输入以下命令:

>>> t.reset()

这会清除屏幕并将海龟带回其原始位置。您的默认设置,如海龟的大小、形状、颜色和其他特征,也将被恢复。

现在您已经学习了使用 Pythonturtle库进行编程的基础知识,您将了解一些您可能希望在编程时使用的额外功能。

留下邮票

你留下的选项你的龟在屏幕上,这只不过是乌龟的印记。尝试输入此代码以查看其工作原理:

>>> t.stamp()
8
>>> t.fd(100)
>>> t.stamp()
9
>>> t.fd(100)

您的输出将如下所示:

Python Turtle 初学者指南

出现的数字是海龟的位置或标记 ID。现在,如果你想删除一个特定的图章,那么只需使用以下内容:

>>> t.clearstamp(8)

这将清除邮票 ID 为 的那个8

   

克隆你的海龟

有时,您的屏幕上可能需要有不止一只乌龟。稍后您将在最终项目中看到这样的示例。现在,您可以通过当前的海龟克隆到您的环境中来获得另一只海龟。尝试运行此代码以创建一个克隆海龟,c然后在屏幕上移动这两个海龟:

>>> c = t.clone()
>>> t.color("magenta")
>>> c.color("red")
>>> t.circle(100)
>>> c.circle(60)

输出将如下所示:

Python Turtle 初学者指南

惊人的!

既然您已经了解了 Pythonturtle库中的一些重要命令,您就可以继续学习一些需要理解的概念。在使用任何语言进行编程时,都非常需要这些概念。

使用循环和条件语句

当您进入高级编程时,您会发现自己经常使用循环和条件语句。这就是为什么在本节中,您将学习几个使用这些类型命令的海龟程序。在理解这些概念时,这将为您提供实用的方法。但是,在开始之前,您需要记住以下三个定义:

  1. 循环是一组不断重复直到满足特定条件的指令。
  2. 条件语句根据满足的条件执行特定任务。
  3. 缩进用于定义代码块,尤其是在使用循环和条件语句时。通常,您可以通过点击Tab键盘上的键来创建缩进。

现在,让我们继续探索这些命令!

for 循环

你还记得你用来创建正方形的程序吗?您必须将同一行代码重复四次,如下所示:

>>> t.fd(100)
>>> t.rt(90)
>>> t.fd(100)
>>> t.rt(90)
>>> t.fd(100)
>>> t.rt(90)
>>> t.fd(100)
>>> t.rt(90)

一个更短的方法是在for循环的帮助下。尝试运行此代码:

>>> for i in range(4):
...     t.fd(100)
...     t.rt(90)

在这里,thei就像一个计数器,它从零开始并不断增加 1。当你说 时in range(4),你是在告诉程序 this 的值i应该小于 4。它会在i到达 4之前终止程序。

以下是该程序如何工作的细分:

  1. 在 i = 0 时,海龟向前移动 100 个单位,然后向右转 90 度。
  2. 在 i = 0 + 1 = 1 时,海龟向前移动 100 个单位,然后向右转 90 度。
  3. 在 i = 1 + 1 = 2 时,海龟向前移动 100 个单位,然后向右转 90 度。
  4. 在 i = 2 + 1 = 3 时,海龟向前移动 100 个单位,然后向右转 90 度。

然后海龟将退出循环。要检查 的值i,请键入i然后按Enter键。你会得到i等于 3的值:

>>> i
3

请注意,程序中第 2 行和第 3 行之前的空格是缩进。这表明所有 3 行构成一个代码块。要了解有关forPython 中循环的更多信息,请查看Python “for” Loops (Definite Iteration)

 

while 循环

while循环使用而病情依然满足于执行特定任务。如果条件不再满足,则您的代码将终止该过程。您可以while通过输入以下代码使用循环来创建一系列圆圈:

>>> n=10
>>> while n <= 40:
...     t.circle(n)
...     n = n+10

运行此代码时,您会看到圆圈一个接一个出现,并且每个新圆圈都会比前一个大:

Python Turtle 初学者指南

在这里,n用作计数器。您需要指定您希望 的值n在每个循环中增加多少。看看这个迷你演练,看看程序是如何工作的:

  1. 在 n = 10 处,海龟绘制一个半径为 10 个单位的圆。之后, 的值n增加 10。
  2. 在 n = 20 时,海龟绘制一个半径为 20 个单位的圆。再次将 的值n增加 10。
  3. 在 n = 30 处,海龟绘制一个半径为 30 个单位的圆。第三次, 的值n增加了 10。
  4. 在 n = 40 处,海龟绘制一个半径为 40 个单位的圆。最后一次, 的值n增加了 10。
  5. 在 n = 50 时, n不再小于或等于 40。循环终止。

要阅读有关while循环的更多信息,请查看Python“while”循环(无限迭代)

条件语句

您可以使用条件语句来检查给定的条件是否为真。如果是,则执行相应的命令。尝试在这个程序中输入:

>>> u = input("Would you like me to draw a shape? Type yes or no: ")
>>> if u == "yes":
...     t.circle(50)

input()用于获取用户的输入。在这里,它会将用户的响应存储在变量 下u。接下来,它将 的值与u提供的条件进行比较,并检查 的值是否u"yes"。如果是"yes",那么您的程序会画一个圆圈。如果用户输入任何其他内容,则程序将不会执行任何操作。

注意:比较运算符==表示比较。它用于检查某个东西的值是否等于其他东西。赋值运算符=用于为某物赋值。要了解有关两者之间差异的更多信息,请查看Python 中的运算符和表达式

在语句中添加else子句时if,可以根据条件是真还是假来指定两个结果。让我们在一个程序中看到这一点:

>>> u = input("Would you like me to draw a shape? Type yes or no: ")
>>> if u == "yes":
...     t.circle(50)
>>> else:
...     print("Okay")

在这里,您告诉程序即使用户没有说 也显示特定的输出"yes"。您用来print()在屏幕上显示一些预定义的字符。

请注意,用户不需要键入"no"。他们可以键入任何其他内容,在这种情况下,结果将始终是"Okay",因为您没有明确告诉程序用户需要键入"no"。不过不用担心,因为这可以解决。您可以添加一个elif子句,为程序提供多个条件及其各自的输出,如下所示:

>>> u = input("Would you like me to draw a shape? Type yes or no: ")
>>> if u == "yes":
...     t.circle(50)
>>> elif u == "no":
...     print("Okay")
>>> else:
...     print("Invalid Reply")

如您所见,该程序现在有多个结果,具体取决于它收到的输入。下面是这段代码的工作原理:

  • 如果您输入"yes"则代码会根据您的说明处理输入并绘制一个圆圈。
  • 如果您输入"no"则代码会打印出来"Okay"并且您的程序将终止。
  • 如果您输入任何其他内容,例如"Hello""Sandwich",则代码将打印"Invalid Reply"并且您的程序将终止。

请注意,此程序区分大小写,因此当您尝试它时,请务必相应地将字符串大写或小写。

要了解有关条件语句的更多信息,请查看Python 中的条件语句

   

最终项目:Python 海龟竞赛

到目前为止,您已经学习了如何自定义您的海龟环境,编写您的海龟在屏幕上移动的程序,以及使用循环和条件语句来改进您的代码。现在是您编程旅程中最重要的部分的时候了。在本节中,您将通过创建一个可以与朋友一起玩的有趣游戏,将所学的所有内容都应用到一个程序中。

在开始之前,以下是您需要了解的有关游戏的信息:

  1. 目标:最先到达乌龟家的玩家获胜。

  2. 怎么玩:

    • 每个玩家掷骰子得到一个数字。
    • 然后玩家将他们的乌龟移动这么多步。
    • 玩家轮流轮流,直到其中一个获胜。
  3. 结构:

    • 每个玩家都有一只用不同颜色表示的乌龟。您可以有两个以上的玩家,但就本教程而言,您将创建一个两人游戏。
    • 每只海龟都有一个它必须到达的起始位置。
    • 每个玩家使用骰子随机选择一个值。在您的程序中,骰子由 1 到 6 的数字列表表示。

现在您已经了解了游戏的逻辑,您可以继续开始创建它!首先,您需要设置环境。

设置游戏环境

首先导入 Pythonturtle库。在此之后,导入内置random库,您将使用它从列表中随机选择一个项目:

import turtle
import random

一旦这些库成功调用到您的环境中,您就可以继续执行程序的其余部分。

设置海龟和家园

您现在必须创建代表玩家的两只海龟。每只乌龟都会有不同的颜色,对应不同的玩家。在这里,玩家一是绿色,玩家二是蓝色

player_one = turtle.Turtle()
player_one.color("green")
player_one.shape("turtle")
player_one.penup()
player_one.goto(-200,100)
player_two = player_one.clone()
player_two.color("blue")
player_two.penup()
player_two.goto(-200,-100)

您已经创建了海龟,将它们放置在它们的起始位置并确保这些位置对齐。请注意,您通过克隆玩家一的海龟、更改其颜色并将其放置在不同的起点来创建玩家二的海龟。

您现在需要为海龟搭建家园。这些房屋将作为每只乌龟的终点。每只海龟的都用一个圆圈表示。在这里,您需要确保两个家与起点的距离相等:

player_one.goto(300,60)
player_one.pendown()
player_one.circle(40)
player_one.penup()
player_one.goto(-200,100)
player_two.goto(300,-140)
player_two.pendown()
player_two.circle(40)
player_two.penup()
player_two.goto(-200,-100)

绘制各自的房屋后,您将海龟送回它们的起始位置:

Python Turtle 初学者指南

惊人的!你的游戏的视觉方面是完整的。您现在可以创建用于玩游戏的骰子。

创建模具

您可以使用list为您的游戏创建一个虚拟骰子,这是一个有序的项目序列。在现实生活中,您可能会准备购物清单和待办事项清单以帮助您保持井井有条。在 Python 中,列表的工作方式类似。

在这种情况下,您将使用一个列表来创建您的模具。首先,按从 1 到 6 的升序定义数字列表。您可以通过给它一个名称然后将其项括在方括号中来定义一个列表,如下所示:

die = [1,2,3,4,5,6]

这个列表现在已经成为你的死法。要掷骰子,您所要做的就是对系统进行编程以从中随机选择一个数字。选择的数字将被视为骰子的输出。

开发游戏

是时候为游戏的其余部分开发代码了。您将在这里使用循环和条件语句,因此您需要小心缩进和空格。首先,查看您的程序运行游戏所需的步骤:

  1. 第 1 步:您将首先告诉您的程序检查任一乌龟是否已到达其家。
  2. 第 2 步:如果他们还没有,那么您将告诉您的程序允许玩家继续尝试。
  3. 第 3 步:在每个循环中,您告诉程序通过从列表中随机选择一个数字来掷骰子。
  4. 第 4 步:然后告诉它相应地移动相应的海龟,步数基于随机选择的结果。

程序不断重复这个过程,并在其中一只海龟到达目标时停止。代码如下所示:

 1for i in range(20):
 2    if player_one.pos() >= (300,100):
 3            print("Player One Wins!")
 4            break
 5    elif player_two.pos() >= (300,-100):
 6            print("Player Two Wins!")
 7            break
 8    else:
 9            player_one_turn = input("Press 'Enter' to roll the die ")
10            die_outcome = random.choice(die)
11            print("The result of the die roll is: ")
12            print(die_outcome)
13            print("The number of steps will be: ")
14            print(20*die_outcome)
15            player_one.fd(20*die_outcome)
16            player_two_turn = input("Press 'Enter' to roll the die ")
17            die_outcome = random.choice(die)
18            print("The result of the die roll is: ")
19            print(die_outcome)
20            print("The number of steps will be: ")
21            print(20*die_outcome)
22            player_two.fd(20*die_outcome)

你的最终输出看起来有点像这样:

Python Turtle 初学者指南

总之,这就是代码正在做的事情:

  1. 第 1 行设置了一个for范围为 1 到 20的循环。

  2. 第 2 行到第 7 行检查任一玩家是否已达到目标。如果其中之一有,则程序打印出相应的语句并中断循环。

  3. 如果双方都没有获胜,第 8行将程序移至下一组步骤。

  4. 第 9 行打印出一条语句,要求玩家一按下Enter键来掷骰子。

  5. 第 10 行从列表中获取一个随机值die并将其存储在die_outcome.

  6. 第 11行在显示掷骰结果之前打印一条语句。

  7. 第 12 行打印骰子结果。

  8. 第 14 行将此值乘以 20,以减少完成游戏所需的总步数。

  9. 第 15行将玩家的海龟向前移动此步数。

  10. 第 16 到 22 行为玩家 2 重复这些步骤。

for重复整个循环,直到玩家的一只海龟到达最终位置。

注意:在 Python 中,您使用星号 ( *) 表示乘法。这称为算术运算符。您还可以使用加号 ( +) 进行加法,使用减号 ( -) 进行减法,使用斜线 ( /) 进行除法。要了解有关算术运算符的更多信息,请查看Python 中运算符和表达式的算术运算符部分。

请记住,您可以随心所欲地自定义游戏,所以继续玩吧!你可以添加更多的海龟、改变颜色、改变速度,甚至创造一些障碍来挑战你的玩家。作为游戏的开发者,这一切都取决于您!

结论

在本教程中,您学习了如何使用 Pythonturtle库进行编程并掌握了一些非常重要的编程概念。您知道如何处理变量初始化、循环、条件语句、缩进、列表和运算符。这对您来说是一个很好的开始,特别是如果您是 Python 编程语言的新手!

现在你可以:

  • 设置Pythonturtle
  • 移动你的乌龟
  • 自定义您的海龟及其环境
  • 编程你的乌龟
  • 使用基本的编程概念
  • 创建一个你可以和朋友一起玩的游戏

 

一些乌龟方法

 

方法

范围

描述

Turtle()

没有任何

它创建并返回一个新的海龟对象

forward()

数量

它将海龟向前移动指定的量

backward()

数量

将海龟向后移动指定的量

right()

角度

它顺时针转动乌龟

left()

角度

它逆时针转动乌龟

penup()

没有任何

它拿起乌龟的笔

pendown()

没有任何

放下乌龟的笔

up()

没有任何

拿起乌龟的笔

down()

没有任何

放下乌龟的笔

color()

颜色名称

改变乌龟笔的颜色

fillcolor()

颜色名称

更改用于填充多边形的海龟的颜色

heading()

没有任何

它返回当前标题

position()

没有任何

它返回当前位置

goto()

x, y

它将海龟移动到位置 x,y

begin_fill()

没有任何

记住填充多边形的起点

end_fill()

没有任何

它关闭多边形并用当前填充颜色填充

dot()

没有任何

将点留在当前位置

stamp()

没有任何

在当前位置留下海龟形状的印象

shape()

形状名称

应该是“箭头”、“经典”、“乌龟”或“圆圈”

 

 

 

示例代码


import turtle
my_window = turtle.Screen()
my_window.bgcolor("blue")       # creates a graphics window
my_pen = turtle.Turtle()
my_pen.forward(150)
my_pen.left(90)
my_pen.forward(75)
my_pen.color("white")
my_pen.pensize(12)
turtle.done()

输出

Python Turtle 初学者指南

画一个正方形

示例代码

import turtle
my_pen = turtle.Turtle()
for i in range(4):
    my_pen.forward(50)
    my_pen.right(90)
turtle.done()

输出

Python Turtle 初学者指南

画一颗星星

示例代码

import turtle
my_pen = turtle.Turtle()
for i in range(50):
   my_pen.forward(50)
   my_pen.right(144)
turtle.done()

输出

Python Turtle 初学者指南

画一个六边形

示例代码

import turtle
polygon = turtle.Turtle()
my_num_sides = 6
my_side_length = 70
my_angle = 360.0 / my_num_sides
for i in range(my_num_sides):
   polygon.forward(my_side_length)
   polygon.right(my_angle)
turtle.done()

输出

Python Turtle 初学者指南

在另一个方框内画一个正方形。

示例代码

import turtle
my_wn = turtle.Screen()
my_wn.bgcolor("light blue")
my_wn.title("Turtle")
my_pen = turtle.Turtle()
my_pen.color("black")
def my_sqrfunc(size):
   for i in range(4):
      my_pen.fd(size)
      my_pen.left(90)
      size = size - 5
my_sqrfunc(146)
my_sqrfunc(126)
my_sqrfunc(106)
my_sqrfunc(86)
my_sqrfunc(66)
my_sqrfunc(46)
my_sqrfunc(26)
turtle.done()

输出

Python Turtle 初学者指南

绘制另一种图案

示例代码

import turtle
my_wn = turtle.Screen()
turtle.speed(2)
for i in range(30):
   turtle.circle(5*i)
   turtle.circle(-5*i)
   turtle.left(i)
turtle.exitonclick()
turtle.done()

输出

Python Turtle 初学者指南

绘制另一种图案

示例代码

import turtle
colors = [ "red","purple","blue","green","orange","yellow"]
my_pen = turtle.Pen()
turtle.bgcolor("black")
for x in range(360):
   my_pen.pencolor(colors[x % 6])
   my_pen.width(x/100 + 1)
   my_pen.forward(x)
   my_pen.left(59)
turtle.done()

输出

Python Turtle 初学者指南

上一篇:源代码python培训


下一篇:python_绘图函数turtle学习