1. 程式人生 > >python隨機生成幾道問答題

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()  

實驗結果: