我是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:
。
答案 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)
,并将其元素分配给x
和y
。
所以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)
来访问迭代元素。