【问题标题】:Draw Triangle by turtle用乌龟画三角形
【发布时间】:2020-10-13 21:49:53
【问题描述】:

我是 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:

【问题讨论】:

  • 看起来你采取了第2步,没有采取第1步。我建议学习基本的python控制结构和数据结构来理解程序。如果您在学习如何骑自行车的同时坚持打断腿并学习课程,那么也没有多少有用的灵魂可以支持:-)
  • 感谢@aartist 的评论,实际上我现在正在从书中学习 Python 的基础知识,发现很难理解前面的几行(同一本书并使用书籍序列),我没有期望它使用列表来分配变量,但我一定会再次复习基础知识,以确保将来轻松理解代码:)

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


【解决方案1】:

在您的代码中,顶点是传递给函数的列表,因此(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

【讨论】:

    【解决方案2】:

    (x, y) = vertices[-1]

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


    for (x, y) in vertices:

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

    【讨论】:

      【解决方案3】:

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

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

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

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

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

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-29
        • 1970-01-01
        • 2022-01-20
        • 1970-01-01
        • 2021-12-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多