-2

3つのwhileループを無期限に実行させようとしているのですが、今はwhile player == 2ループが終了すると、関数により変数player = 0になるのですが、ループが最初のwhileループに戻りません。

def nextplayer():
    global player
    if player == 0:
        player = 1
    elif player ==1:
        player = 2
    elif player == 2:
        player = 0

while player == 0:
    print('Player 1 turn')
    spinwheel()
    nextplayer()

while player == 1:
    print('Player 2 turn')
    spinwheel()
    nextplayer()

while player == 2:
    print('Player 3 turn')
    spinwheel()
    nextplayer()
4

1 に答える 1

0

これは、次のようにするとはるかに簡単になりますitertools.cycle

from itertools import cycle


for player in cycle([0,1,2]):
    print(f'Player {player} turn')
    spinwheel()

nextplayerグローバル変数を変更する関数を呼び出す必要はありません。

于 2020-04-09T14:23:27.303 に答える