[英]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 個項目,您將收到此錯誤。 此外,由於您在循環中設置fwd
和lt
,因此無需事先創建或初始化這些變量:
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.