python生成试卷制卷系统_Python 读写文件 小应用:生成随机的测验试卷文件
去年學(xué)習(xí)了python的讀寫文件部分,了解了python讀寫的常用模塊os、shelve,今天準(zhǔn)備把課后作業(yè)試著自己做一下
目標(biāo):1)生成35份試卷、每個試卷有50道選擇題
2)為了防止有學(xué)生作弊,需要將每份試卷的題目順序都不一樣
思路:1)首先要創(chuàng)建35份不同的測驗試卷
2)然后為每份試卷創(chuàng)建50個多重選擇題,讓他們的次序隨機(jī)。
3)為每個問題提供一個正確答案和3個錯誤的干擾選項,并且選項的次序隨機(jī)。
4)將35份測試試卷寫到35個文本文件中。
5)將答案寫到35個文本文件中。
下面開始:
經(jīng)過一番思考,電光火石間,鍵盤上火花四濺,不一會兒功夫,花我9.9大洋的鍵盤就分崩離析。不僅是因為我的速度,還是因為每個按鍵,只有一次與我手指親吻的機(jī)會,假如他沒有在0.000001秒內(nèi)彈起,他就不會通過考驗,而他必須為此付出代價,流浪,只有流浪,才能讓它認(rèn)識到自己傲嬌的代價。好了,在他最后一次被我彈起,在北緯N22°47′47.18″ 東經(jīng)E136°0′38.67″?這片土地上旋轉(zhuǎn)跳躍的時候,這一刻,請我們羨慕他一次,他得以看到屏幕上一閃而逝的代碼。他會明白自己是有多么的幸運(yùn),而前一刻心中的不甘是有多么可笑。在最后一刻,他回首看了一眼自己的母體,那條嶄新的鍵盤,只不過他的兄弟都已不再,依舊像第一次看見它的時候,它想起來了,在記憶的工廠里,自己是被選中的第一個按鍵,被一雙粗糙的大手反復(fù)的摩擦之后,打住。。。這惱人的意識流
來了
#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里面的內(nèi)容打亂#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()方法獲取所有答案,在復(fù)制到新的列表中,刪去正確的答案
wrongAnswers=list(capitals.values())delwrongAnswers[wrongAnswers.index(correctAnswer)]
wrongAnswers=random.sample(wrongAnswers,3) #random.sample(parameter1,parameter2)從參數(shù)1中隨機(jī)選出參數(shù)2指定的個數(shù)
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()
總結(jié)
以上是生活随笔為你收集整理的python生成试卷制卷系统_Python 读写文件 小应用:生成随机的测验试卷文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 以居开头的成语有哪些啊?
- 下一篇: “风竹玉相戛”上一句是什么