#! python3
import random ''' 目標:制作N份選項無序的試卷 步驟:1.創建檔案(試卷檔案和對應答案檔案) 2.寫入題頭 3.寫入題目和選項 4.關閉檔案 重點:1.無序選項如何實作 已有資料是字典形式,key是題目內容,對應的value是正確答案, 選項都是value,所以先把所有value提取出來并串列化,list(capitals.values()) 從中洗掉正確選項,并隨機提取三個干擾選項,再加上正確答案,可形成具有4個元素的串列A, 然后將A中元素順序打亂,并提取,即可得到4個無序的選項, 2.如何找出正確答案對應的選項 要利用無序選項在寫入時,對應ABCD的順序等于正確答案在串列A的順序 'ABCD'[a.index(capitals[state])] ''' #建立美國各州與州首府的字典資料 capitals = {'Alabama':'Montgomery','Alaska':'Juneau', 'Arizona':'Phoenix','Arkansas':'Little Rock', 'California':'Sacramento', 'Colorado':'Denver'} #制作五份試卷 for quiznum in range(5): #創建物件,分別對應quiz(1-5)的試卷和answer(1-5)的答案 quizFile = open('quiz%s.txt'%(quiznum + 1),'w') answerFile = open('answer%s.txt'%(quiznum + 1),'w') #quiz中寫入姓名,班級和試卷題頭 quizFile.write('Name:\nClass:\n\n') quizFile.write((' '*20) + '美國地理常識測驗題%s\n\n'%(quiznum + 1)) #串列化各州,并打亂順序 states = list(capitals.keys()) random.shuffle(states) #串列化各州首府,并打亂順序 capital = list(capitals.values()) random.shuffle(capital) #在每份試卷中寫入六道題 for testnum in range(6): #從打亂順序的州中依次提取州名,并在試卷中寫入名字 state = states[testnum] quizFile.write('%s.美國%s的首府是?%(testnum + 1,state)') #提取的州所對應的州首府,即正確答案 correct = capitals[state] #洗掉州首府串列中的正確答案 del capital[capital.index(correct)] #從州首府中隨機提取3個州首府 wrong = random.sample(capital,3) #串列化四個選項,并打亂順序 option = list(wrong) + list(correct) random.shuffle(option) #在試卷物件中寫入4個選項 for optionum in range(4): quizFile.write('%s.%s'%('ABCD'[optionum],option_[optionum])) #在答案物件中寫入正確答案所對應的ABCD answerFile.write('%s.%s\n'%(testnum + 1,'ABCD'[option.index(correct)]) quizFile.close() answerFile.close()
運行后顯示:
C:\Users\carrie\Desktop\test>C:/Users/carrie/AppData/Local/Programs/Python/Python37/python.exe c:/Users/carrie/Desktop/test/自動化辦公/無序試卷隨機出題(自習).py
File "c:/Users/carrie/Desktop/test/自動化辦公/無序試卷隨機出題(自習).py", line 55
quizFile.close()
^
SyntaxError: invalid syntax
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/145733.html
標籤:Python
上一篇:Python3.x基礎教程4 上
下一篇:斐波那契數列列印輸出演算法改進
