You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 08:47:43