python实践项目八:生成随机试卷文件
2020-12-13 05:58
标签:文件中 spring set reg values lin dex nbsp main 描述:匹配美国50个州的首府。 运行结果: python实践项目八:生成随机试卷文件 标签:文件中 spring set reg values lin dex nbsp main 原文地址:https://www.cnblogs.com/heyangblog/p/11159300.html 1 #!/usr/bin/python
2 # -*- coding: UTF-8 -*-
3
4 import random,os
5 #设置试卷、答案存放路径
6 testPath=‘F:\\Test‘
7 answerPath=‘F:\\Answer‘
8 #判断路径是否存在,若不存在则创建一个
9 if not os.path.exists(testPath):
10 os.mkdir(testPath)
11 if not os.path.exists(answerPath):
12 os.mkdir(answerPath)
13 #将测试数据保存在一个字典中,key为州名,value为首府名
14 capitals = {‘Alabama‘: ‘Montgomery‘, ‘Alaska‘: ‘quesNumuneau‘, ‘Arizona‘: ‘Phoenix‘,
15 ‘Arkansas‘: ‘Little Rock‘, ‘California‘: ‘Sacramento‘, ‘Colorado‘: ‘Denver‘,
16 ‘Connecticut‘: ‘Hartford‘, ‘Delaware‘: ‘Dover‘, ‘Florida‘: ‘Tallahassee‘,
17 ‘Georgia‘: ‘Atlanta‘, ‘Hawaii‘: ‘Honolulu‘, ‘Idaho‘: ‘Boise‘, ‘Illinois‘:
18 ‘Springfield‘, ‘Indiana‘: ‘Indianapolis‘, ‘Iowa‘: ‘Des Moines‘, ‘Kansas‘:
19 ‘Topeka‘, ‘Kentucky‘: ‘Frankfort‘, ‘Louisiana‘: ‘Baton Rouge‘, ‘Maine‘:
20 ‘Augusta‘, ‘Maryland‘: ‘Annapolis‘, ‘Massachusetts‘: ‘Boston‘, ‘Michigan‘:
21 ‘Lansing‘, ‘Minnesota‘: ‘Saint Paul‘, ‘Mississippi‘: ‘quesNumackson‘, ‘Missouri‘:
22 ‘quesNumefferson City‘, ‘Montana‘: ‘Helena‘, ‘Nebraska‘: ‘Lincoln‘, ‘Nevada‘:
23 ‘Carson City‘, ‘New Hampshire‘: ‘Concord‘, ‘New quesNumersey‘: ‘Trenton‘, ‘NewMexico‘:
24 ‘Santa Fe‘, ‘New York‘: ‘Albany‘, ‘North Carolina‘: ‘Raleigh‘,
25 ‘North Dakota‘: ‘Bismarck‘, ‘Ohio‘: ‘Columbus‘, ‘Oklahoma‘: ‘Oklahoma City‘,
26 ‘Oregon‘: ‘Salem‘, ‘Pennsylvania‘: ‘Harrisburg‘, ‘Rhode Island‘: ‘Providence‘,
27 ‘South Carolina‘: ‘Columbia‘, ‘South Dakota‘: ‘Pierre‘, ‘Tennessee‘:
28 ‘Nashville‘, ‘Texas‘: ‘Austin‘, ‘Utah‘: ‘Salt Lake City‘, ‘Vermont‘:
29 ‘Montpelier‘, ‘Virginia‘: ‘Richmond‘, ‘Washington‘: ‘Olympia‘, ‘WestVirginia‘:
30 ‘Charleston‘, ‘Wisconsin‘: ‘Madison‘, ‘Wyoming‘: ‘Cheyenne‘}
31 #循环35次,创建35套试卷
32 for fileNum in range(35):
33 #os.path.quesNumoin:将路径和文件名连接起来,相应的文件位置即可确定
34 quesFile=open(os.path.join(testPath,‘question%s.txt‘ %(fileNum+1)),‘w‘)
35 answerFile=open(os.path.join(answerPath,‘answer%s.txt‘ %(fileNum+1)),‘w‘)
36 #写试卷的抬头信息
37 quesFile.write(‘Name:\n\nDate:\n\nPeriod:\n\n‘)
38 quesFile.write((‘ ‘*20)+‘state Capitals Quiz(Form %s)‘ %(fileNum+1))
39 quesFile.write(‘\n\n‘)
40 #将州名写入一个列表
41 states=list(capitals.keys())
42 #使用random.shuffle()函数将列表内容随机排序
43 random.shuffle(states)
44 #循环创建50个题目
45 for quesNum in range(50):
46 #获得正确答案
47 correctAnswer=capitals[states[quesNum]]
48 #将所有答案写入一个列表
49 wrongAnswers=list(capitals.values())
50 #删除列表中正确的答案,得到全是错误答案的列表
51 del wrongAnswers[wrongAnswers.index(correctAnswer)]
52 #从错误答案列表中随机获取3个答案
53 wrongAnswers=random.sample(wrongAnswers,3)
54 #将正常答案和3个错误答案放入一个选项列表
55 answerOptions=wrongAnswers+[correctAnswer]
56 #将选项列表随机排序
57 random.shuffle(answerOptions)
58
59 #将题目写入quesFile
60 quesFile.write(‘\n%s.What is the capital of %s?\n‘ %(quesNum+1,states[quesNum]))
61 #将选项写入quesFile
62 for k in range(4):
63 quesFile.write(‘\n%s.%s‘ %(‘ABCD‘[k],answerOptions[k]))
64 quesFile.write(‘\n‘)
65
66 #将答案写入answerFile
67 answerFile.write(‘%2s.%s\n‘ %(quesNum+1,‘ABCD‘[answerOptions.index(correctAnswer)]))
68 quesFile.close()
69 answerFile.close()
文章标题:python实践项目八:生成随机试卷文件
文章链接:http://soscw.com/index.php/essay/32126.html