标签:stat exe open correct nsa 文件 programs 内容 key
#! 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
求助:SyntaxError: invalid syntax
标签:stat exe open correct nsa 文件 programs 内容 key
原文地址:https://www.cnblogs.com/huzhikai001/p/12907733.html