一分钟生成1000份中国省会城市知识测试卷及答案

一、系统环境

 Windows 10 22H2版,Windows Feature Experience Pack 120.2212.4190.0
Anaconda3-2022.05-Windows-x86,python3.9,jupyterbook。

二、主要代码

import random , time#调用 random,time库
tis1 =time.perf_counter()#标记程序启动时间
province_capital = {'北京市': '北京','天津市': '天津', ........'台湾省': '台北','}#引入省、直辖市、自治区及省会(首府)字典
for quizNum in range(1000):#创建1000份测试卷及答案
    quizFile = open('中国省会知识随机测试卷(%s).txt' % (quizNum + 1), 'w')#创建1000份测试卷
    answerKeyFile = open('中国省会知识随机测试卷答案(%s).txt' % (quizNum + 1), 'w')#创建1000份测试卷答案
    quizFile.write((' ' * 10) + '中国省会知识随机测试 (试卷 %s)' % (quizNum + 1))#试卷标题左缩进10个空格
    quizFile.write('\n\n')#试卷标题段后空两行
    quizFile.write((' '*2)+'考生:'+('_'*6)+'日期:'+('_'*8)+'成绩:'+('_'*4)+'阅卷人:'+('_'*6))#设置试卷基础信息栏目
    states = list(province_capital.keys())#生成省会清单
    random.shuffle(states)#调用Shuffle函数随机调整省会清单
    for questionNum in range(34): #遍历所有省份并各自生成一道题
        correctAnswer = province_capital[states[questionNum]]#获取正确答案选项
        wrongAnswers = list(province_capital.values())#获取错误答案选项初始列表
        del wrongAnswers[wrongAnswers.index(correctAnswer)]#删除初始列表中夹杂的正确答案选项
        wrongAnswers = random.sample(wrongAnswers, 3)#在最终错误答案选项列表中随机挑选3个错误选项
        answerOptions = wrongAnswers + [correctAnswer]#合并生成四个答案选项
        random.shuffle(answerOptions)#随机打乱四个答案选项
        quizFile.write('%s.%s的省会是?(    )\n\n' % (questionNum + 1, states[questionNum]))#生成题干及选项,题干下空两行 
        for i in range(4):
            quizFile.write(' %s. %s\n' % ('ABCD'[i], answerOptions[i]))#生成选项
            answerKeyFile.write('%s. %s\n' % (questionNum + 1, 'ABCD'[answerOptions.index(correctAnswer)]))  # 生成答案.
    print("中国省会知识随机测试卷({})已自动生成!".format(str(quizNum+1)))#展示试卷生成进度
    print("中国省会知识随机测试卷({})答案已自动生成!".format(str(quizNum+1)))#展示试卷答案生成进度
    quizFile.close()#关闭保存试卷文件
    answerKeyFile.close()#关闭保存试卷答案文件
tis2 =time.perf_counter()#标记程序结束时间
print("程序运行总计用时: %.03f 秒" %(tis2-tis1))#计算程序运行时间

三、运行效果

1.界面:自动生成1000份.txt格式单项选择题试卷。

2.试卷:题干与选项均随机组合,试卷编号自动生成。

 3.答案:对应试卷编号自动生成1000份试卷答案。

 四、代码文件下载

1.百度网盘二维码

 2.百度网盘链接: https://pan.baidu.com/s/1zz6Jb88Fyt2rqbS7BwIhiw?,评论区留言后,私信获取提取码。

      五、原创声明

      仅用作学习交流,不得非法使用。除封面图片来自网络(侵删)外,其余均为程序运行实时截图。欢迎各路大佬留言指导,提出宝贵建议。Email:2533033@qq.com。(微信、skype同号)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值