用乌龟画三角形

时间:2020-06-23 18:26:28

标签: python python-3.x python-turtle

我是python的初学者,发现了一个代码,可以通过Turtle绘制三角形,如下所示

def drawPolygon(t, vertices):
    t.up()
    (x, y) = vertices[-1]
    t.goto(x, y)
    t.down()
    for (x, y) in vertices:
        t.goto(x, y)

import turtle
t = turtle.Turtle()
t.hideturtle()
drawPolygon(t, [(20, 20), (-20, 20), (-20, -20)])

turtle.done()

我不明白的第一件事是:(x, y) = vertices[-1]

我不明白的第二件事是:for (x, y) in vertices:

3 个答案:

答案 0 :(得分:2)

在您的代码中,顶点是传递给函数的列表,因此(x, y) = vertices[-1]仅访问列表中的最后一个元素(-1表示从头开始的第一个元素),而(x,y)是一个存储返回的值。 for (x, y) in vertices:只是一种遍历列表顶点中所有元素的方式。

请参阅这些以获取更多信息:

https://docs.python.org/3/tutorial/controlflow.html

https://docs.python.org/3/reference/simple_stmts.html#assignment-statements

答案 1 :(得分:1)

第一行:(x, y) = vertices[-1]基本上是在说

获取列表vertices中的最后一个元素(-20, -20),并将其元素分配给xy

所以x等于-20,而y也等于-20。

第二行:for (x, y) in vertices:。该行将创建一个for loop

此特定循环遍历列表vertices,并获取每个值,并使用.goto()函数使乌龟转到该值。

希望这会有所帮助!

答案 2 :(得分:1)

(x, y) = vertices[-1]

预订-1意味着获取数组的最后一个元素,在本例中为(-20, -20)


for (x, y) in vertices:

将使python遍历数组中的每个元素,在每次迭代过程中,可通过调用(x, y)来访问迭代元素。

相关问题