目前我已使用begin_poly
和end_poly
然後register_shape
在Turtle
中定義了許多形狀。我希望能夠將所有這些值放入列表中,並且只需按一下按鈕,就可以在列表中循環,從而更改Turtle
形狀。我在Itertools
難以實現這一點,並想知道如何實現這一目標。使用Itertools循環難度
編輯:我最終得到了它,我將所有值附加到列表中,然後使用計數器來選擇要去哪個索引。
目前我已使用begin_poly
和end_poly
然後register_shape
在Turtle
中定義了許多形狀。我希望能夠將所有這些值放入列表中,並且只需按一下按鈕,就可以在列表中循環,從而更改Turtle
形狀。我在Itertools
難以實現這一點,並想知道如何實現這一目標。使用Itertools循環難度
編輯:我最終得到了它,我將所有值附加到列表中,然後使用計數器來選擇要去哪個索引。
首先,創建發生器:
>>> import itertools
>>> shape_list = ["square", "triangle", "circle", "pentagon", "star", "octagon"]
>>> g = itertools.cycle(shape_list)
然後調用next()
只要你想一個又一個。
>>> next(g)
'square'
>>> next(g)
'triangle'
>>> next(g)
'circle'
>>> next(g)
'pentagon'
>>> next(g)
'star'
>>> next(g)
'octagon'
>>> next(g)
'square'
>>> next(g)
'triangle'
這裏有一個簡單的程序:
import itertools
shape_list = ["square", "triangle", "circle", "pentagon", "star", "octagon"]
g = itertools.cycle(shape_list)
for i in xrange(8):
shape = next(g)
print "Drawing",shape
輸出:
Drawing square
Drawing triangle
Drawing circle
Drawing pentagon
Drawing star
Drawing octagon
Drawing square
Drawing triangle
解釋它是如何 「不工作」。 http://sscce.org/ – Marcin
看起來問題在於你實際上沒有對從發生器獲得的值做任何事情。 – Marcin
我編輯了這個問題。當我嘗試這個時,它變成了一個形狀,但是當我再次按下h時,它不會離開它。它鬼魅到其他形狀,所以我知道它是騎自行車,但它不是設置一個新的形狀。 – Hayden