学字典建题库,孩子学习一定酷
- 开始组建试题
- 编写程序,运动,导入试题
- 为防止试题选项重复,转化选项为元组
- 孩子试题组卷时,首字母无法一致问题,建立条件分支
- 建立试题+答案,还有单独的答案副本
import random,os
d = {}
name = ''
def file_list():
global zj_ml
print('物理组卷---w,英语组卷---e')
ml = input('输入科目:')
if ml == 'e':
zj_ml = '英语组题'
elif ml == 'w':
zj_ml = '物理组题'
files = os.listdir(f'F:\物理练习图\九年级\字典组建试题\{zj_ml}')
return files
file = file_list()
def english(file):
for ind, x in enumerate(file):
print(ind, '-', x.strip('.txt'),end='\t')
if ind%5== 0:
print('')
xz = int(input('\n选择序号:'))
fil = file[xz]
fil = ''.join(fil)
with open(rf"F:\物理练习图\九年级\字典组建试题\{zj_ml}\{fil}") as f:
print(f'------{fil.strip(".txt")} *** 试题已经组卷成功.------\nF:\物理练习图\九年级\英语试题生成文件 ')
for line in f:
key,val = line.split('|')
val = ''.join(val)
val = val.strip('\n')
d[key] = val
return d
eng_tests = english(file)
pd_letter_dx = []
file_name = input('文件名称:')
for quizNum in range(20):
quizFile = open(r'F:\物理练习图\九年级\英语试题生成文件\{}-{}.doc'.format(file_name,quizNum + 1),'w',encoding='utf-8')
answerKeyFile = open(r'F:\物理练习图\九年级\英语试题生成文件\{}-_答案{}.txt'.format(file_name,quizNum + 1), 'w')
quizFile.write('姓名:\t\t日期:\t\t学期:\t\t')
quizFile.write((' ' * 20) + '英语专题测试 (卷 %s)' % (quizNum + 1))
quizFile.write('\n\n')
eng_test_list = list(eng_tests.keys())
random.shuffle(eng_test_list)
for questionNum in range(len(eng_test_list)):
correctAnswer = eng_tests[eng_test_list[questionNum]]
wrongAnsewers = list(eng_tests.values())
wrongAnsewers = set(wrongAnsewers)
print(wrongAnsewers)
wrongAnsewers = list(wrongAnsewers)
del wrongAnsewers[wrongAnsewers.index(correctAnswer)]
wrongAnsewers = random.sample(wrongAnsewers, 3)
answerOptions = wrongAnsewers + [correctAnswer]
random.shuffle(answerOptions)
quizFile.write('\n%s. %s( ) \n' %(questionNum + 1,
eng_test_list[questionNum]))
letter_dx = "False" if ord('a') <= ord(correctAnswer[0]) <= ord('z') else "True"
if letter_dx == 'True':
answerOptions_dx = [i.capitalize() for i in answerOptions]
elif letter_dx == 'False':
answerOptions_dx = [i.lower() for i in answerOptions]
for i in range(4):
quizFile.write('%s. %s\t' % ('ABCD'[i], answerOptions_dx[i]))
quizFile.write('\n【答案】%s\n' % ( 'ABCD'[
answerOptions.index(correctAnswer)]))
quizFile.write('\n')
answerKeyFile.write('%s.%s\n' %(questionNum + 1, 'ABCD'[
answerOptions.index(correctAnswer)]))
quizFile.close()
answerKeyFile.close()