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()
實驗結果: