码迷,mamicode.com
首页 > 其他好文 > 详细

<每日一题>题目28:生成随机的测验试卷(单选题)

时间:2019-02-15 13:20:07      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:图片   list   state   abc   api   write   导入   9.png   inf   

#项目:生成随机的测验试卷文件
import random
#资料库
capitals = {‘北京市‘:‘京‘,‘上海市‘:‘沪‘,‘天津市‘:‘津‘,‘重庆市‘:‘渝‘,‘河北省‘:‘冀‘,‘山西省‘:‘晋‘,‘辽宁省‘:‘辽‘,‘黑龙江省‘:‘黑‘,‘吉林省‘:‘吉‘,‘江苏省‘:‘苏‘,‘浙江省‘:‘浙‘,‘安徽省‘:‘皖‘,‘福建省‘:‘闽‘,‘江西省‘:‘赣‘,‘山东省‘:‘鲁‘,‘河南省‘:‘豫‘,‘湖北省‘:‘鄂‘,‘湖南省‘:‘湘‘,‘广东省‘:‘粤‘,‘海南省‘:‘琼‘,‘四川省‘:‘川‘,‘贵州省‘:‘黔‘,‘云南省‘:‘滇‘,‘陕西省‘:‘陕‘,‘甘肃省‘:‘甘‘}
#测试人数
for quizNum in range(1):
    #因为range()函数的循环是从0开始,所以都需要加1,分别创建每份测试的题目以及答案
    quizFile = open(‘capitalsquiz%s.txt‘%(quizNum + 1),‘w‘)
    answerKeyFile = open(‘capitalsquiz_answer%s.txt‘%(quizNum + 1),‘w‘)
    #在测试中留空,已供填写日期,姓名等,以写模式写文档不会自动换行,所以需要加入\n
    quizFile.write(‘姓名:\n\n年龄:\n\n日期:\n\n‘)
    quizFile.write((‘ ‘*20)+‘省会测试题(%s卷)‘%(quizNum + 1))     #留空20个空格,加题目序号
    quizFile.write(‘\n\n‘)
    #将资料库中的键随机打乱之后存入states中
    states = list(capitals.keys())
    random.shuffle(states)
    #del是删除列表操作,不同于def,看清楚
    for questionNum in range(20):
        correctAnswer = capitals[states[questionNum]] #根据随机后的states在capitals中反查正确答案
        wrongAnswers = list(capitals.values())       #列举所以答案
        del wrongAnswers[wrongAnswers.index(correctAnswer)]  #删除列举中的正确答案,index方法,找到返回索引值,然后由del删除
        wrongAnswers = random.sample(wrongAnswers,3)   #sample方法,在已给的序列中随机选取指定长度片段,不做修改
        answerOptions = wrongAnswers + [correctAnswer] #答案是,正确答案加3个错误答案
        random.shuffle(answerOptions)   # 将答案的顺序进行打乱
        quizFile.write(‘%s.%s的省会城市是?\n‘%(questionNum + 1,states[questionNum]))
        for i in range(4):
            quizFile.write(‘%s.%s\n‘%(‘ABCD‘[i],answerOptions[i])) #给出选项
        quizFile.write(‘\n‘)  #结尾空行
        answerKeyFile.write(‘%s,%s\n‘%(questionNum + 1,‘ABCD‘[answerOptions.index(correctAnswer)]))#由正确答案反求序号,得出对应的ABCD,
    #进过写操作,记得关闭文档
    quizFile.close()
    answerKeyFile.close()

  运行结果:

题目:

技术图片

答案:

技术图片

导入一个题库,我可以出N张卷子- -,纪念当初的高三生活!

<每日一题>题目28:生成随机的测验试卷(单选题)

标签:图片   list   state   abc   api   write   导入   9.png   inf   

原文地址:https://www.cnblogs.com/shuimohei/p/10383035.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!