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

如何解决Python编写Mastermind游戏菜单时出现的无限循环问题

问题原因

你的无限循环是由两个点共同导致的:

  • 循环触发条件while ans的判断规则是:只要ans的值属于Python的「真值」就会继续执行循环。你后续把ans赋值为用户输入的字符串,只要用户输入的不是空字符串,ans就永远是真值,循环不会停止
  • 你没有给退出选项q编写对应逻辑,就算用户输入了q,也没有触发终止循环的操作

修复方案

你只需要补充q选项的分支,在用户输入q的时候把ans赋值为False,或者直接跳出循环即可,参考修改后的代码:

ans = True
while ans:
    print("你需要执行什么操作?")
    print("""
    r 注册新用户
    s 显示得分榜
    p 开始游戏
    q 退出
    """)
    ans = input("请输入对应选项:")
    if ans == "r":
        player_1 = input("请输入新用户的名称:")
        print("欢迎", player_1, "!")
    elif ans == "s":
        # 后续补充显示得分榜的逻辑
        print("得分榜功能开发中")
    elif ans == "p":
        # 后续补充游戏逻辑
        print("游戏功能开发中")
    elif ans == "q":
        print("即将退出游戏")
        ans = False
        # 也可以直接用break终止循环,效果一致
    else:
        print("输入的选项无效,请重新输入")

额外优化建议

  • 可以把输入内容统一转成小写、去除首尾空格,避免用户输入大写R/Q、多打空格时识别失败:ans = input("请输入对应选项:").strip().lower()
  • 注册用户的逻辑建议用列表存储所有用户,不要只定义player_1单个变量,避免后续多用户注册时旧数据被覆盖

内容的提问来源于stack exchange,提问作者Dulanjana Gamage

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:45:03