python随机生成几道问答题

今天学习python是看到一个有趣的程序,自己动手试了试,网上有很多这个例子,注释就不写的那么详细

直接贴上代码

# ! python
#生成随机测试文件

#第一步将测试数据保存在一个字典中

import random

#测试数据

capitals={'印度':'新德里','土耳其':'安卡拉','泰国':'曼谷','缅甸':'仰光',
          '意大利':'罗马','葡萄牙':'里斯本','英国':'伦敦','希腊':'雅典',
          '中国':'北京','日本':'东京','美国':'华盛顿','法国':'巴黎'}

#随机生成3份文件,打乱问题顺序

#下面的代码全在这循环之内

for quizNum in range(3):
    #创建一份唯一的文件名,并让学生填上姓名和日期班级等

    #测试文件名和测试文件答案编号
    quizFile = open('D:\\试卷%s.txt'%(quizNum + 1), 'w')
    answerKeyFile = open('D:\\试卷%s答案.txt'%(quizNum + 1),'w')

    #写测试人xinx
    quizFile.write('Name:\nDtat:\nperiod:\n\n')
    quizFile.write((' '*3) + '正确答案(Form %s)'%(quizNum + 1))
    quizFile.write('\n\n')

    #random.shuffle()函数生成随机列表
    states = list(capitals.keys())
    random.shuffle(states)

    #每份试卷5道题创建答案选项
    for questionNum in range(5):
        #得到正确和错误的答案
        correctAnswer = capitals[states[questionNum]]
        wrongAnswer = list(capitals.values())
        del wrongAnswer[wrongAnswer.index(correctAnswer)]
        wrongAnswer = random.sample(wrongAnswer,3)
        answerOptions = wrongAnswer + [correctAnswer]
        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)]))

   #文件关闭要注意下位置
    quizFile.close()
    answerKeyFile.close()
 

实验结果:

python随机生成几道问答题

python随机生成几道问答题

python随机生成几道问答题