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

Python实现选择题测验时如何处理用户输入的无效非预期答案?

Python选择题测验程序修复方案

现有代码问题

  • 缩进不规范:函数体内的score初始化、for循环等代码块没有正确缩进,无法正常运行
  • 小写转换无效:user_answer.lower()仅返回转换后的新字符串,未赋值回原变量,用户输入的大写选项无法被识别
  • 合法性判断逻辑错误:user_answer == "a" or "b" or "c"的写法等效于(user_answer == "a") or True or True,永远返回真,所有输入都会被判定为合法,无法触发重输逻辑
  • 原有跳转规则错误,不符合「输入合法就进入下一题」的需求

修复后完整代码

def test_run2(questions):
    score = 0
    for question in questions:
        while True:
            user_answer = input(question.prompt).strip()
            user_answer = user_answer.lower()
            # 判断是否为合法选项
            if user_answer in ("a", "b", "c"):
                if user_answer == question.answer:
                    score += 1
                # 输入合法无论对错都进入下一题
                break
            # 输入不合法提示后重新提问
            print("输入无效,请输入a、b、c其中一个选项")
    # 测验结束输出得分,可根据需求删除
    print(f"测验结束,你的得分是:{score}/{len(questions)}")
    return score

修改说明

  • 修正所有代码块缩进,符合Python语法要求
  • 给小写转换操作增加赋值逻辑,确保用户输入的大小写选项都能被正常识别,额外增加strip()处理用户误输入的首尾空格
  • 把合法性判断替换为user_answer in ("a", "b", "c"),只有输入为三个合法选项之一才会判定通过
  • 调整流程逻辑:输入不合法时提示后自动重输当前问题,输入合法后不管答案对错都跳出循环进入下一题,答对自动加分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:45:04