我正在开发一个打开文件“answer.txt”的程序。该文件模拟学生对测试的回答。该程序然后将文件与 answerKey 进行比较。它逐行打印答案键与学生的答案。它会记录好答案和坏答案。最后它打印一个分数。我可以让这个程序使用两个不同的答案键,但是当我尝试从文件中提取答案时,我得到了太多的输出。它跳过文件中的第一个答案。然后它只来回打印来自应答键的 B、D。学生方从第二个答案开始打印,然后跳过所有其他答案。
我的代码:
def main():
try:
answerKey = ['B', 'D', 'A', 'A', 'C', 'A', 'B', 'A', 'C', 'D', 'B', 'C',\
'D', 'A', 'D', 'C', 'C', 'B', 'D', 'A']
index = 0
numCorrect = 0
answer_file = open('answers.txt', 'r')
studentExam = answer_file.readline()
print('Correct\tYour\tStatus\nAns.\tAns.\n-----------------------\n')
while studentExam != "":
problem_number = index + 1
studentExam = studentExam.rstrip("\n")
studentExam = answer_file.readline()
for answerLine, studentLine in zip (answerKey, studentExam):
answer = answerLine.split()
studentAnswer = studentLine.split()
if studentAnswer != answer:
print( 'You got that question number', index + 1, 'wrong\n the correct answer was' ,answer, 'but you answered' , studentAnswer)
index += 1
else:
numCorrect += 1
index += 1
grade = int((numCorrect / 20) * 100)
print (' The number of correctly answered questions: ', numCorrect)
print (' The number of incorrectly answered questions: ', 20 - numCorrect)
print (' Your grade is', grade, '%')
if grade <= 75:
print (' You have not passed ')
else:
print (' Congrats you have passed ')
except IOError:
print("The file could not be found")
except IndexError:
print("There was an indexing error")
except:
print("An error occurred")
main()
我的输出:
You got that question number 1 wrong
the correct answer was ['B'] but you answered ['D']
You got that question number 2 wrong
the correct answer was ['D'] but you answered []
You got that question number 3 wrong
the correct answer was ['B'] but you answered ['A']
You got that question number 4 wrong
the correct answer was ['D'] but you answered []
You got that question number 5 wrong
the correct answer was ['B'] but you answered ['A']
You got that question number 6 wrong
the correct answer was ['D'] but you answered []
You got that question number 7 wrong
the correct answer was ['B'] but you answered ['C']
You got that question number 8 wrong
the correct answer was ['D'] but you answered []
You got that question number 9 wrong
the correct answer was ['B'] but you answered ['A']
You got that question number 10 wrong
the correct answer was ['D'] but you answered []
You got that question number 12 wrong
the correct answer was ['D'] but you answered []
You got that question number 13 wrong
the correct answer was ['B'] but you answered ['A']
You got that question number 14 wrong
the correct answer was ['D'] but you answered []
You got that question number 15 wrong
the correct answer was ['B'] but you answered ['C']
You got that question number 16 wrong
the correct answer was ['D'] but you answered []
You got that question number 17 wrong
the correct answer was ['B'] but you answered ['C']
You got that question number 18 wrong
the correct answer was ['D'] but you answered []
You got that question number 19 wrong
the correct answer was ['B'] but you answered ['C']
You got that question number 20 wrong
the correct answer was ['D'] but you answered []
You got that question number 21 wrong
the correct answer was ['B'] but you answered ['C']
You got that question number 22 wrong
the correct answer was ['D'] but you answered []
You got that question number 23 wrong
the correct answer was ['B'] but you answered ['D']
You got that question number 24 wrong
the correct answer was ['D'] but you answered []
You got that question number 25 wrong
the correct answer was ['B'] but you answered ['A']
You got that question number 26 wrong
the correct answer was ['D'] but you answered []
You got that question number 27 wrong
the correct answer was ['B'] but you answered ['D']
You got that question number 28 wrong
the correct answer was ['D'] but you answered []
You got that question number 29 wrong
the correct answer was ['B'] but you answered ['C']
You got that question number 30 wrong
the correct answer was ['D'] but you answered []
You got that question number 31 wrong
the correct answer was ['B'] but you answered ['C']
You got that question number 32 wrong
the correct answer was ['D'] but you answered []
You got that question number 34 wrong
the correct answer was ['D'] but you answered []
You got that question number 35 wrong
the correct answer was ['B'] but you answered ['D']
You got that question number 36 wrong
the correct answer was ['D'] but you answered []
You got that question number 37 wrong
the correct answer was ['B'] but you answered ['D']
You got that question number 38 wrong
the correct answer was ['D'] but you answered []
The number of correctly answered questions: 2
The number of incorrectly answered questions: 18
Your grade is 10 %
它没有比较正确的数据,请帮我纠正这个问题。只有 20 个答案,文件中的答案如下所示:
B
D
A
A
C
A
B
A
C
C
C
C
D
A
D
C
C
B
D
D
每个都有自己的路线。因此,我尝试使用循环来遍历答案键中的每个答案,并将其与该文件中的每个答案进行比较。谁能告诉我我的python代码有什么问题?