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

如何在Python骰子游戏中处理重玩循环的无效输入?

解决无效输入的循环问题

看起来你遇到的问题是,当用户输入非y/n的响应时,程序没有重新让用户输入,而是直接继续执行,破坏了游戏的循环逻辑。我们可以通过嵌套一个小循环来验证输入的方式解决这个问题,既不影响外层的游戏循环,又能确保用户输入有效的选项。

修改后的完整代码

# 先初始化必要的变量(示例)
import random
dicescore = random.randint(2, 6) * 2  # 确保骰子分数是偶数,符合你的提示逻辑
correct = 0
incorrect = 0
rounds = 0

# 第一次询问用户是否继续,确保输入有效
another_attempt = ""
while another_attempt not in ['y', 'n']:
    another_attempt = input("Roll dice again [y|n]? ").lower()  # 兼容大写输入
    if another_attempt not in ['y', 'n']:
        print("Please enter either 'y' or 'n'.")

while another_attempt == 'y':
    roll_guess = int(input("Please enter your guess for the roll: "))
    if roll_guess == dicescore :
        print("Well done! You guessed it!")
        correct += 1
        rounds +=1
        if correct >= 4:
            # 补充你原本缺失的胜利逻辑,比如结束游戏
            print("You've won the game!")
            break
    elif roll_guess % 2 == 0:
        print(f"No sorry, it's {dicescore}, not {roll_guess}")
        incorrect += 1
        rounds +=1
    else:
        print(f"No sorry, it's {dicescore} not {roll_guess}. The score is always even.")
        incorrect += 1
        rounds +=1
    
    # 游戏回合结束后,重新询问并验证输入
    another_attempt = ""
    while another_attempt not in ['y', 'n']:
        another_attempt = input('Roll dice again [y|n]? ').lower()
        if another_attempt not in ['y', 'n']:
            print("Please enter either 'y' or 'n'.")
    
    if another_attempt == 'n':
        print("""Game Summary""")
        # 可添加总结内容,比如:
        # print(f"Total rounds: {rounds}, Correct guesses: {correct}, Incorrect guesses: {incorrect}")

关键修改点解释

  1. 输入验证的嵌套循环:

    • 不管是首次询问还是每轮游戏结束后的询问,都用一个小while循环包裹输入逻辑,直到用户输入y或n为止。
    • 添加.lower()方法,让用户输入Y/N也能被识别,提升交互友好度。
  2. 不破坏外层循环逻辑:

    • 外层的while another_attempt == 'y'只负责控制游戏是否继续,输入验证逻辑完全独立在嵌套循环中,不会干扰核心游戏流程。
  3. 修复语法漏洞:

    • 补全了if correct >=4:后的逻辑(你原代码此处缺失语句块,会导致语法错误),可以根据需求调整为胜利提示或直接结束游戏。

这样修改后,用户输入无效内容时,程序会持续提示重新输入,直到得到有效的y/n,完美匹配你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:53:29