簡體   English   中英

在 python 上使用海龜訪問元組

[英]Accessing tuple with turtle on python

我對 python 和一般編程還是新手,這是我在這里的第一篇文章。 我正在嘗試繪制一個內部帶有 X 的“房子”形狀。 我需要使用一個帶有一個列表的循環,該列表包含分別向前、向左的元組。 我想出了畫房子需要什么坐標,但我不能利用它們來讓烏龜移動。 這是學校的作業。 我正在附上到目前為止我得到的所有東西。 任何見解將不勝感激,非常感謝

def drawhouse(t, ls):
    fwd, lt = ls
    for fwd, lt in ls:
        t.forward(fwd)
        t.left(lt)


def main():
    import turtle
    wn = turtle.Screen()
    t = turtle.Turtle()
    wn.bgcolor("Cyan")
    wn.title("Drawing a house")
    wn.mainloop()
    ls = [(100, 90), (100, 90), (100, 240), (100, 240),
          (100, 285), (140, 225), (100, 225), (100, 0)]
    drawhouse(t, ls)


main()

希望代碼的格式正確(似乎在預覽中)提前謝謝。

wn.mainloop()在底部有到 go ; 在您關閉 window 之前,不會執行該點之后的任何代碼。 所以,把它放在你的main() function 的底部。

此外,您的drawhouse需要稍作改動。 您在開頭有fwd, lt = ls ,這會導致錯誤。 只有當右側的值與左側的值相同時,該語法才有效(否則您將收到“太多值無法解包”錯誤)。 由於ls包含超過 2 個項目,您將收到此錯誤。 此外,由於您在循環中設置fwdlt ,因此無需事先創建或初始化這些變量:

for fwd, lt in ls:
    t.forward(fwd)
    t.left(lt)

就是這樣; 只需進行以下兩個小更改,您的代碼就可以很好地工作:

def drawhouse(t, ls):
    for fwd, lt in ls:
        t.forward(fwd)
        t.left(lt)


def main():
    import turtle
    wn = turtle.Screen()
    t = turtle.Turtle()
    wn.bgcolor("Cyan")
    wn.title("Drawing a house")
    ls = [(100, 90), (100, 90), (100, 240), (100, 240),
          (100, 285), (140, 225), (100, 225), (100, 0)]
    drawhouse(t, ls)
    wn.mainloop()

main()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM