有人可以解释这段代码吗?

时间:2016-08-27 04:14:14

标签: python turtle-graphics

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上发布此消息,作为初学者,我并不确定它是如何运作的。请解释一下。

2 个答案:

答案 0 :(得分: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. 第三行对于初学者来说有点难以理解,但基本上你通过使用一个名为{{1}的turtle python文件中编写的类来制作龟对象 }。你应该注意我将我们的龟对象turtle.Turtle而不是t作为你的导入名为turtle的模块名称。
  4. 使用turtle创建我们的乌龟对象后,它现在具有turtle类的所有属性和方法。可用的方法之一称为turtle.Turtle。这可以在绘制线条或形状时控制乌龟的速度。
  5. 第四行应该是非常自我解释的。在名为speed()的{​​{1}}对象上,我们有另一个名为pen-size的方法,用于设置用于绘图的笔的大小。
  6. 第五行只使用turtle.Turtle类中的另一种方法来设置绘图的笔颜色,蓝色。
  7. 第六行设置变量t等于数字turtle.Turtle
  8. 下一行创建一个永远运行的while循环。在那个while循环中,我们告诉python:
  9. 运行1到3范围内的for循环。换句话说,运行for-loop 1次。
  10. for-loop 的每次迭代中,将我们的乌龟笔向前移动1个像素。
  11. for-loop 的每次迭代中,将我们的乌龟笔向左移动180度。
  12. 最后一行和最后一行,在 while-loop 的每次迭代中,x变量增加3个数字,而不是 for-loop
  13. 当程序运行时,它看起来就像Lyang的答案中张贴的照片。

答案 1 :(得分:-1)

代码中存在一些错误,因此未使用kt不存在(turtle = turtle.Turtle()应该是t = turtle.Turtle())。我假设n应该是i

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

enter image description here