Python三个while循环无法无限轮转运行的问题求助
问题原因与解决方案
你遇到的问题核心在于三个while循环是独立的顺序执行结构,而非持续运行的循环分支判断。
具体来说:
- 程序一开始会进入
while player == 0循环,直到player不再为0时才会退出这个循环,接着往下执行第二个while player ==1循环; - 同理,第二个循环退出后进入第三个
while player ==2循环,当这个循环执行完(player被设为0),程序已经走到了代码末尾,不会再回头重新检查第一个循环的条件,自然就停止了。
修复方案
把所有玩家回合的逻辑放到一个无限循环里,通过if-elif判断当前玩家,这样程序会持续运行并不断切换玩家:
def nextplayer(): global player if player == 0: player = 1 elif player == 1: player = 2 elif player == 2: player = 0 # 别忘了给player初始赋值 player = 0 while True: if player == 0: print('Player 1 turn') spinwheel() nextplayer() elif player == 1: print('Player 2 turn') spinwheel() nextplayer() elif player == 2: print('Player 3 turn') spinwheel() nextplayer()
为什么这样有效?
外层的while True是一个无限循环,会一直持续运行。每一次循环都会检查当前player的值,执行对应玩家的操作,然后切换玩家。这样就能实现三个玩家无限轮流执行回合的效果了。
如果需要在某个条件下终止循环(比如玩家获胜),只需要在对应的逻辑里加上break语句即可。
内容的提问来源于stack exchange,提问作者irevo
相关产品推荐
相关产品推荐

