【问题标题】:Could someone explain this piece of code? [closed]有人可以解释这段代码吗? [关闭]
【发布时间】:2016-08-27 04:14:14
【问题描述】:
import turtle
k = 4
turtle = turtle.Turtle()
turtle.speed(200)
turtle.pensize(1)
turtle.pencolor("blue")
x = 3
while True:
    for i in range(1, x):
        t.forward(n)
        t.left(360/x)
    x = x + 1

一位朋友在 Facebook 上发布了此内容,作为初学者,我不确定它是如何工作的。请解释一下。

【问题讨论】:

  • 您的代码不会运行。做一些修复,你会得到漂亮的乌龟图像。
  • 什么是“n”变量?
  • @AlirezaAfzalghaei 我认为这是一个错字,应该是i
  • 你为什么要问我们而不是你的朋友?

标签: python turtle-graphics


【解决方案1】:

您的好友代码包含一些错误。我将代码修改为如下示例:

import turtle
k = 4
t = turtle.Turtle()
t.speed(200)
t.pensize(1)
t.pencolor("blue")
x = 3
while True:
    for i in range(1, x):
        t.forward(i)
        t.left(360/x)
    x = x + 1

尽管如此,让我们一步一步来:

  1. 第一行import turtle 将编写在名为turtle 的python 文件中的所有代码导入到您现在所在的文件中。海龟模块允许您使用虚拟笔绘制线条和形状。
  2. 下一行,将变量k 设置为等于数字4。
  3. 第三行对于初学者来说有点难以理解,但基本上你所做的就是使用编写在名为 turtle.Turtle 的海龟 Python 文件中的类来制作 海龟对象。您应该注意,我将调用我们的海龟对象 t 而不是 turtle,因为您导入的模块名称已经命名为 turtle。
  4. 使用turtle 创建了我们的turtle 对象后,它现在具有turtle.Turtle 类的所有属性和方法。其中一种可用的方法称为speed()。这可以控制海龟在绘制线条或形状时的速度。
  5. 第四行应该很容易解释。在名为 t 的 turtle.Turtle 对象上,我们还有另一个名为 pen-size 的方法,用于设置用于绘图的笔的大小。
  6. 第五行只是使用turtle.Turtle 类中的另一种方法来设置绘图的笔颜色,蓝色。
  7. 第六行设置变量x等于数字3
  8. 接下来的几行创建了一个将永远运行的 while 循环。在那个while循环中,我们告诉python:
  9. 在 1 到 3 的范围内运行一个 for 循环。换句话说,运行 for 循环 1 次。
  10. 在 for-loop 的每次迭代中,将海龟笔向前移动 1 个像素。
  11. 在 for 循环 的每次迭代中,将海龟笔向左移动 180 度。
  12. 最后一行是在 while 循环而不是 for 循环的每次迭代中将 x 变量增加 1 数字。

当程序运行时,它看起来像 Lyang 的答案中发布的照片​​。

【讨论】:

    【解决方案2】:

    代码中有一些错误,比如k没有被使用,t不存在(turtle = turtle.Turtle()应该是t = turtle.Turtle())。我假设n 应该是i。

    Turtle 是来自 python 的一个包,但它不是必需的包,因此您的代码可能无法在在线解释器上运行。当它运行时,它会生成这样的图像(在动画中):

    【讨论】:

    • 恐怕真的没有回答主要问题。
    猜你喜欢
    • 2012-11-23
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多