1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
| #!python3
#-*- coding:utf-8 -*-
#randomQuiz.py - 随机生成35份不同的测试试卷,以及对应的答案
import random
import sys, os
import shutil
#中国省,及其省会城市
province = {
'北京': '北京市',
'天津': '天津市',
'上海': '上海市',
'重庆': '重庆市',
'河南省': '郑州市',
'安徽省': '合肥市',
'福建省': '福州市',
'甘肃省': '兰州市',
'贵州省': '贵阳市',
'海南省': '海口市',
'河北省': '石家庄市',
'黑龙江省': '哈尔滨市',
'湖北省': '武汉市',
'湖南省': '长沙市',
'吉林省': '长春市',
'江苏省': '南京市',
'江西省': '南昌市',
'辽宁省': '沈阳市',
'青海省': '西宁市',
'山东省': '济南市',
'山西省': '太原市',
'陕西省': '西安市',
'四川省': '成都市',
'云南省': '昆明市',
'浙江省': '杭州市',
'台湾省': '台北市',
'广东省': '广州市',
'广西壮族自治区': '南宁市',
'内蒙古自治区': '呼和浩特市',
'宁夏回族自治区': '银川市',
'西藏藏族自治区': '拉萨市',
'新疆维吾尔自治区': '乌鲁木齐市',
'香港': '香港',
'澳门': '澳门'
}
os.chdir(r'D:\py')
#检查文件夹是否创建,如果已存在,删除并重新创建
if not (os.path.isdir(r'.\Quize') and os.path.isdir(r'.\Answer')):
os.mkdir(r'.\Quize')
os.mkdir(r'.\Answer')
print("Quize 和 Answer文件夹已创建。")
else:
shutil.rmtree(r'.\Quize')
shutil.rmtree(r'.\Answer')
os.mkdir(r'.\Quize')
os.mkdir(r'.\Answer')
print("已删除,并重新创建")
print(os.getcwd())
print("省会城市问答卷生成器".center(50, '-'))
#生成35份试卷
for quizNum in range(50):
#生成问卷和答卷文件,分别放入Quiz、Answer文件夹
quizeFile = open('.\\Quize\\省会城市问答卷%s.txt' % (quizNum + 1), 'w')
answerKeyfile = open('.\\Answer\\%s卷答案.txt' % (quizNum + 1), 'w')
#给答卷写入标题
quizeFile.write('姓名:\n\n日期:\n\n学号:\n\n')
quizeFile.write('中国省会城市问答卷'.center(100))
quizeFile.write('\n\n')
#打乱省会名称的顺序
province_name = list(province.keys())
random.shuffle(province_name)
#生成问题,以及答案选项
for questionNum in range(34):
# 获取正确和错误的答案
correctAnswer = province[province_name[questionNum]]
worongAnswers = list(province.values())
del worongAnswers[worongAnswers.index(correctAnswer)]
worongAnswers = random.sample(worongAnswers, 3)
#打乱答案
answerOption = worongAnswers + [correctAnswer]
random.shuffle(answerOption)
#把问题和答案选项写入问卷文件中
quizeFile.write('%s. %s的省会城市是?\n' % (questionNum + 1, province_name[questionNum]))
for i in range(4):
quizeFile.write(' %s. %s\n' % ('ABCD'[i], answerOption[i]))
quizeFile.write('\n')
#把每一问的正确答案写入答卷文件中
answerKeyfile.write('%s. %s\n' % (questionNum + 1, 'ABCD'[answerOption.index(correctAnswer)]))
quizeFile.close()
answerKeyfile.close()
print("卷%s完成!" % (quizNum + 1))
|