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

Python蛇水枪游戏输入y后run函数不执行是什么原因

故障原因

你遇到的问题是全局变量未重置导致的:

  • 第一次执行run()函数时,循环每执行一次,chance变量就会自增1,10轮游戏全部跑完后,chance的值已经变成了11
  • 当你输入y第二次调用run()时,while chance > 0 and chance <= 10的判断条件直接不成立,循环完全不会执行,所以看起来就像run()函数没有运行。

修复方案

修改run()函数,在进入循环前先重置所有游戏状态全局变量即可:

def run():
    global choices, chance, player_p, comp_p, counter
    # 新增:每次启动游戏先重置状态
    chance = 1
    counter = 10
    player_p = 0
    comp_p = 0
    while chance > 0 and chance <= 10:
        # 其余原有逻辑保持不变

如果需要第二轮游戏结束后也正常触发胜负判定、支持多次重开,可以把胜负结果打印、winner()调用、run_again()调用都移动到run()函数的末尾即可。

内容的提问来源于stack exchange,提问作者Shreyash Kashyap

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 04:15:06