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

如何修复对错题评分代码以正确显示分数?

问题分析与修复:评分计算异常问题

问题描述

评分系统设定最低分0、最高分5,但实际运行后最低分达12、最高分达13,评分逻辑为输入答案与存储答案匹配时计分。

代码核心问题

  1. 嵌套循环导致分数溢出:外层遍历每个问题时,内层又遍历全部答案列表anslist,每回答一个问题就会和所有5个答案比对。比如输入"t",会匹配到anslist中所有"t"选项直接累加分数,单次正确回答可能加3分,最终分数远超上限。
  2. 未定义变量count:代码中使用count +=1但未初始化count,运行会直接报错。
  3. 无效的输入验证逻辑:无论输入是否有效都执行count +=1,且count无实际用途,属于冗余代码。

修复后的代码

# 题目与答案列表
questlist = ["Q1","t", "Q2", "f", "Q3", "t", "Q4","f", "Q5", "t"]

# 拆分题目和对应答案
newqlist = questlist[::2]
anslist = questlist[1::2]

score = 0
# 同时遍历题目和其对应的正确答案
for question, correct_ans in zip(newqlist, anslist):
    print(question)
    answer = input("请输入't'代表正确,'f'代表错误:")
    # 验证输入有效性
    if answer not in ("t", "f"):
        print("输入无效,不计分")
        continue
    # 仅比对当前问题的正确答案
    if answer == correct_ans:
        score +=1

# 输出最终评分结果
percentage = (score / 5) * 100
print(f"你的得分是 {score}/5,正确率 {percentage}%。")

修复说明

  • 用zip关联题目与对应答案:确保每个问题只和自身的正确答案比对,避免重复累加分数,保证分数范围在0-5之间。
  • 删除冗余的count变量:原代码中count未定义且无实际作用,直接移除相关逻辑。
  • 优化输入验证逻辑:输入无效时跳过计分,避免无效输入干扰结果。
  • 采用f-string简化输出:让输出代码更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:06:47