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

Python实现随机抽题测验功能有没有更简便的方法?

随机测验程序简洁实现方案

你的原代码冗余核心原因是对每个题目都单独写了重复的判断、答题、判分逻辑,完全可以通过数据结构优化来消除重复代码,优化思路如下:

  • 用字典存储题目-正确答案的配对关系,彻底去掉冗余的多分支条件判断
  • 用enumerate遍历实现自动计数,替代手动维护题目序号、删除列表元素的操作
  • 统一抽离公共的答题、判分逻辑,无需每个题目重复写相同代码

优化后可运行代码

import random

# 统一存储题目和对应答案,后续新增题目仅需修改此处
question_bank = {
    "What is the capital of England?": "London",
    "What is the capital of France?": "Paris",
    "What is the capital of Germany?": "Berlin"
}

# 打乱题目顺序
question_list = list(question_bank.items())
random.shuffle(question_list)

score = 0
# 遍历出题,enumerate第二个参数1代表序号从1开始计数
for q_num, (question, correct_ans) in enumerate(question_list, 1):
    print(f"\n\nQuestion {q_num}\n")
    user_input = input(f"{question}\n")
    # 加strip处理用户输入前后多余空格的情况,容错性更好
    if user_input.strip() == correct_ans:
        print("\nCorrect")
        score += 1
    else:
        print("\nIncorrect")

print(f"You scored {score} out of {len(question_list)} correct!")

优化优势

  • 总代码行数比原版本压缩了60%左右,逻辑更清晰
  • 后续新增题目不需要修改业务逻辑,仅需在question_bank字典中新增一行键值对即可
  • 自动适配题目数量,无需硬编码循环次数、总分值等参数
  • 额外增加了输入首尾空格的容错处理,比原版本实用性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:45:03