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

Python多选问答游戏用户输入校验功能异常问题求解

多选问答游戏输入校验问题修复

现有代码问题原因

  • 调用validate_input时参数错误,误传内置函数input而非用户实际输入的变量
  • validate_input函数逻辑失效:
    • 内部直接覆盖了传入的输入值为固定提示字符串,无法读取用户真实输入
    • 仅判断了输入为空的场景,未校验输入是否属于a/b/c/d合法范围
    • 校验失败后没有重新获取用户输入,也没有返回合规的输入值
  • 执行流程未等待校验通过就直接进入答案判断环节,非法输入被直接判定为答错

修复后代码

def quiz_game():
    questions_num = 0
    score = 0

    for key in questions:
        print("...................")
        print(key)
        for x in answers[questions_num]:
            print(x)        
        # 直接调用校验函数获取合法输入,替代原有输入+校验的错误写法
        guess = validate_input()       
        if answer_input(guess, questions_num):                  
            print('Your answer is correct')
            score += 1 
        else:                    
            print('Your answer is wrong')
        # 无论对错都切换下一题,不需要每个分支重复写自增逻辑
        questions_num += 1

    points(score)

def validate_input():
    # 定义合法输入集合
    valid_options = {'a', 'b', 'c', 'd'}
    while True:
        # 获取输入并去除首尾空格、转小写兼容大写输入
        user_input = input('Enter a, b, c or d: ').strip().lower()
        if user_input in valid_options:
            return user_input
        # 非法输入给出提示,循环要求重新输入
        print("输入无效,请输入a、b、c、d中的有效选项")

内容的提问来源于stack exchange,提问作者Damhán

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:06:03