24-第4步_将内容写入测验试卷和答案文件
第4步:将内容写入测验试卷和答案文件
剩下来就是将问题写入测验试卷文件,将答案写入答案文件。让你的代码看起来像这样:
#! python3
# randomQuizGenerator.py - Creates quizzes with questions and answers in
# random order, along with the answer key.
--snip--
# Loop through all 50 states, making a question for each.
for questionNum in range(50):
--snip--
# Write the question and the answer options to the quiz file.
quizFile.write(f'{questionNum + 1}. What is the capital of
{states[questionNum]}?\n')
❶ for i in range(4):
❷ quizFile.write(f" {'ABCD'[i]}. { answerOptions[i]}\n")
quizFile.write('\n')
# Write the answer key to a file.
❸ answerKeyFile.write(f"{questionNum + 1}.
{'ABCD'[answerOptions.index(correctAnswer)]}")
quizFile.close()
answerKeyFile.close()
使用一个遍历整数0~3的 for
循环,将答案选项写入 answerOptions
列表❶。❷处的表达式 'ABCD'[i]
将字符串 'ABCD'
看成一个数组,它在循环的每次迭代中,将分别求值为 'A'
、 'B'
、 'C'
和 'D'
。
在最后一行❸,表达式 answerOptions.index(correctAnswer)
将在随机排序的答案选项中找到正确答案的整数索引,并且 'ABCD'[answerOptions. index(correctAnswer)]
将求值为正确答案的字母写入答案文件中。
在运行该程序后,下面就是capitalsquiz1.txt文件看起来的样子。但是,你的问题和答案选项与这里显示的可能会不同。这取决于 random.shuffle()
调用的结果:
Name:
Date:
Period:
State Capitals Quiz (Form 1)
1.What is the capital of West Virginia?
A.Hartford
B.Santa Fe
C.Harrisburg
D.Charleston
2.What is the capital of Colorado?
A.Raleigh
B.Harrisburg
C.Denver
D.Lincoln
--snip--
对应的capitalsquiz_answers1.txt文本文件看起来像这样:
1.D
2.C
3.A
4.C
--snip--