当前位置:嗨网首页>书籍在线阅读

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--