5

現時点では、とTurtleを使用してbegin_poly多くの形状を定義していend_polyますregister_shape。これらの値をすべてリストに入れ、ボタンを押すだけでリストを循環させ、Turtle形状を変更できるようにしたいと考えています。私はこれを達成するのに苦労しており、これをItertools達成する方法について何らかの支援を求めていました.

編集:最終的には機能しました。すべての値をリストに追加し、カウンターを使用して移動するインデックスを選択しました。

4

1 に答える 1

34

まず、ジェネレーターを作成します。

>>> 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
于 2012-08-31T01:46:18.763 に答える