Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从文本文件中计算多项选择题的分数_Python_Python 3.x - Fatal编程技术网

Python 如何从文本文件中计算多项选择题的分数

Python 如何从文本文件中计算多项选择题的分数,python,python-3.x,Python,Python 3.x,我试图在包含5个问题和4个可能答案的文本文件中计算正确答案和错误答案的数量。到目前为止,我能够一次一个地循环回答每个问题,用户能够给出答案,但是我似乎不知道如何计算用户给出的答案是对还是错 我知道如何在其他更简单的代码中使用累加器值,但是当问题来自文本文件时,我不知道如何格式化它 math_file = open("math.txt", 'r') question_prompts = math_file.readlines() count = 0 correct_answers = {"c":[

我试图在包含5个问题和4个可能答案的文本文件中计算正确答案和错误答案的数量。到目前为止,我能够一次一个地循环回答每个问题,用户能够给出答案,但是我似乎不知道如何计算用户给出的答案是对还是错

我知道如何在其他更简单的代码中使用累加器值,但是当问题来自文本文件时,我不知道如何格式化它

math_file = open("math.txt", 'r')
question_prompts = math_file.readlines()
count = 0
correct_answers = {"c":[0], "b":[1], "a":[2], "a":[3], "d":[4]}
startline = 0
for num in range(5):
    for i in range(startline, startline + 5):
        print(question_prompts[i])
    answer = input('Answer: ')
    startline = startline + 5
    if answer == correct_answers:
        count += 1
此代码一次正确打印一个文本文件问题,例如,第一个问题是: 什么是4x6

(a) 四,

(b) 十二,

(c) 二十四

(d) 240

然后程序给出

回答:(用户可以在这里输入)

我试着用字典把问题的答案按出现的顺序排列,但我不确定这是否有效。非常感谢您的建议

  • 您试图使用的字典应该是相反的,字典中的值不应该在列表中
  • if answer==correct\u answers
    是错误的,因为
    “a”!={0:c',1:b,2:a',3:a',4:d}


您在哪里使用词典?现在这里有一些上下文:一般来说,字典应该使用您拥有的值作为键(问题编号),使用您想要的值作为值(答案)。另一行更改,因为您要将答案与相应问题的字典值进行比较。此外,由于字典键是数字,您可以使用列表并通过索引访问它们。谢谢!!这真的很有帮助!!
math_file = open("math.txt", 'r')
question_prompts = math_file.readlines()
count = 0
correct_answers = {0:"c", 1:"b", 2:"a", 3:"a", 4:"d"}  # the line to change
startline = 0
for num in range(5):
    for i in range(startline, startline + 5):
        print(question_prompts[i])
    answer = input('Answer: ')
    startline = startline + 5
    if answer == correct_answers[num]: # the line to change
        count += 1