鱼C论坛

 找回密码
 立即注册
查看: 2125|回复: 0

[作品展示] 中国省会测试自动生成

[复制链接]
发表于 2023-4-8 23:41:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
自动生成 35 份不同的测试题与答案
#! python3
# 生成中国省会测试 35份

import random
import os


# 保存各个省会的字典 23个省,5个自治区,4个直辖市2个特别行政区 总34
capitals = {
    '河北': '冀 石家庄',
    '河南': '豫 郑州',
    '陕西': '陕或秦  西安',
    '山西': '晋 太原',
    '山东': '鲁 济南',
    '甘肃': '甘或陇 兰州',
    '辽宁': '辽 沈阳',
    '吉林': '吉 长春',
    '黑龙江': '黑 哈尔滨',
    '云南': '云或滇 昆明',
    '贵州': '贵或黔 贵阳',
    '福建': '闽 福州',
    '广东': '粤 广州',
    '海南': '琼 海口',
    '台湾': '台 ',
    '四川': '川或蜀 成都',
    '湖北': '鄂 武汉',
    '湖南': '湘 长沙',
    '江西': '赣 南昌',
    '安徽': '皖 合肥',
    '江苏': '苏 南京',
    '浙江': '浙 杭州',
    '青海': '青 西宁',
    '北京': '北京',
    '天津': '天津',
    '重庆': '重庆',
    '上海': '上海 ',
    '内蒙古自治区': '呼和浩特',
    '新疆维吾尔自治区': '乌鲁木齐',
    '西藏自治区': '拉萨',
    '广西壮族自治区': '南宁',
    '宁夏回族自治区': '银川',
    '香港特别行政区': '香港',
    '澳门特别行政区': '澳门'}

# 生成 35 份测试试卷
for quiz_num in range(35):
    # 1、 创建试卷 文件,和答案文件
    quiz_file = open('试卷%s.txt' % (quiz_num + 1), 'w')
    answer_keyfile = open('试卷%s答案.txt' % (quiz_num + 1), 'w')
    # 2、试卷头部 姓名 日期 班级
    quiz_file.write((' ' * 40) + "试卷(卷 %s)\n" % (quiz_num + 1))
    quiz_file.write('姓名:\t\t\t日期:\t\t\t班级:\t\t\t')
    quiz_file.write('\n\n')

    # 创建随机列表
    states = list(capitals.keys())
    random.shuffle(states)

    # 创建答案选项
    for question_num in range(34):
        # 选项
        correct_answer = capitals[states[question_num]]
        wrong_answers = list(capitals.values())
        del wrong_answers[wrong_answers.index(correct_answer)]
        wrong_answers = random.sample(wrong_answers, 3)
        answer_options = wrong_answers + [correct_answer]
        random.shuffle(answer_options)

        # 将问题跟答案写入到 答案文件
        quiz_file.write('%s. %s的省会是什么?\n' % (question_num + 1,
                                             states[question_num]))
        for i in range(4):
            quiz_file.write('%s. %s\n' % ('ABCD'[i], answer_options[i]))
            # quiz_file.write('\n')
        quiz_file.write('\n')
        #
        answer_keyfile.write('%s. %s\n' % (question_num + 1,
                                           'ABCD'[answer_options.index(correct_answer)]))
    quiz_file.close()
    answer_keyfile.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 21:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表