python запустить 3, пока петли бесконечно - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь заставить 3 цикла while работать бесконечно, но сейчас, когда while player == 2 l oop заканчивается, переменная player = 0 из-за функции, но l oop не go вернуться к первому, а l oop.

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()

1 Ответ

0 голосов
/ 09 апреля 2020

Это было бы намного проще с itertools.cycle:

from itertools import cycle


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

Нет необходимости вызывать функцию nextplayer, которая изменяет глобальную переменную.

...