博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 读写文件 小应用:生成随机的测验试卷文件
阅读量:7111 次
发布时间:2019-06-28

本文共 2370 字,大约阅读时间需要 7 分钟。

去年学习了python的读写文件部分,了解了python读写的常用模块os、shelve,今天准备把课后作业试着自己做一下

目标:1)生成35份试卷、每个试卷有50道选择题

   2)为了防止有学生作弊,需要将每份试卷的题目顺序都不一样

思路:1)首先要创建35份不同的测验试卷

   2)然后为每份试卷创建50个多重选择题,让他们的次序随机。

   3)为每个问题提供一个正确答案和3个错误的干扰选项,并且选项的次序随机。

   4)将35份测试试卷写到35个文本文件中。

   5)将答案写到35个文本文件中。

下面开始:

  经过一番思考,电光火石间,键盘上火花四溅,不一会儿功夫,花我9.9大洋的键盘就分崩离析。不仅是因为我的速度,还是因为每个按键,只有一次与我手指亲吻的机会,假如他没有在0.000001秒内弹起,他就不会通过考验,而他必须为此付出代价,流浪,只有流浪,才能让它认识到自己傲娇的代价。好了,在他最后一次被我弹起,在北纬N22°47′47.18″ 东经E136°0′38.67″ 这片土地上旋转跳跃的时候,这一刻,请我们羡慕他一次,他得以看到屏幕上一闪而逝的代码。他会明白自己是有多么的幸运,而前一刻心中的不甘是有多么可笑。在最后一刻,他回首看了一眼自己的母体,那条崭新的键盘,只不过他的兄弟都已不再,依旧像第一次看见它的时候,它想起来了,在记忆的工厂里,自己是被选中的第一个按键,被一双粗糙的大手反复的摩擦之后,打住。。。这恼人的意识流

来了

# The quiz data. Keys are states and values are their capitals # Generate 35quiz files.for quizNum in range(35):    #Create the quiz and answer key files.    quizFile=open('capitalsquiz%s.txt'%(quizNum+1),'w')  #占位符的使用    answerKeyFile=open('capitalsquiz_answers%s.txt'%(quizNum+1),'w')    #Write out the header for the quiz.    quizFile.write('Name:\n\nDate:\n\nPeriod:\n\n')    quizFile.write((' '*20)+'State Capitals Quiz(Form %s)' % (quizNum+1))  #打印若干个相同的字符/串便捷的写法    quizFile.write('\n\n')        #Shuffle the order of the states.    states=list(capitals.keys())    random.shuffle(states)  #random.shuffle()会将列表states里面的内容打乱        #Loop throgh all 50 states,making a question for each    for questionNum in range(50):        #Get right and wrong answers          correctAnswer=capitals[states[questionNum]]  #得到错误答案的方法采用的是:先使用字典的values()方法获取所有答案,在复制到新的列表中,删去正确的答案        wrongAnswers=list(capitals.values())        del wrongAnswers[wrongAnswers.index(correctAnswer)]        wrongAnswers=random.sample(wrongAnswers,3)  #random.sample(parameter1,parameter2)从参数1中随机选出参数2指定的个数        answerOptions=wrongAnswers+[correctAnswer]        random.shuffle(answerOptions)  #在打乱一次,防止每个题目正确答案选项都一样        #write the question and the answer options to the quiz file.        quizFile.write('%s.What is the capital of %s?\n' % (questionNum+1,states[questionNum]))         for i in range(4):            quizFile.write('%s.%s\n' % ('ABCD'[i],answerOptions[i]))        quizFile.write('\n')        #write the answer key to a file.        answerKeyFile.write('%s.%s\n'%(questionNum+1,' ABCD'[answerOptions.index(correctAnswer)]))  #注意这里不要选择麻烦的方法,要熟练使用    quizFile.close()    answerKeyFile.close()

 

转载于:https://www.cnblogs.com/Gaoqiking/p/10435783.html

你可能感兴趣的文章
沈阳赛区总结
查看>>
自然语言1_介绍和安装
查看>>
git: windows git ssh keys生成
查看>>
转: 系统分布式情况下最终一致性方案梳理
查看>>
Webpack学习笔记一:What is webpack
查看>>
linux磁盘空间查询
查看>>
windows中使用Findwindow函数与FindWindowEx函数来实现自动控制、触发第三方软件事件的方法...
查看>>
浏览器的同源策略和跨域问题
查看>>
SQL SERVER 触发器介绍
查看>>
美国国有企业
查看>>
推送的通知和自定义消息区别
查看>>
c# 解析JSON的几种办法
查看>>
autofs自动挂载
查看>>
JavaWeb学习笔记——过滤器
查看>>
互联网创业原则与创业模式attilax大总结
查看>>
微信小程序想通过场景化缩短路径
查看>>
手把手教你DIY一个春运迁徙图(一)
查看>>
mysql编码问题
查看>>
Web APi之HttpClient注意事项以及建议
查看>>
Webkit内核探究【2】——css简介
查看>>