For 循环中的最后一个元素未完全迭代

Last Element in For Loop Not Iterating Completely

我的一个作业有问题,我使用 for 循环比较两个列表,一个是答案键,另一个是学生答案列表,以产生一个分数,其中+4 表示正确的回答,-1 表示不正确的回答,0 表示省略的回答。它工作正常,直到它到达循环的最后一个元素。我知道程序是 "reading" 最后一个元素,因为我之前已经让它打印了它们,但它没有正确调整分数,实际上是减一分,不管答案如何。我不知道出了什么问题,尤其是因为这只是最后一部分。

这是我的代码的相关部分:

    #As we go over each line, we add to the student counter to keep track of the number of students.
    #We use the split function to turn each line of the file into a list that we can use.
    for line in open_file:
        students += 1
        student_ans = line.split(",")

        #The score tracker keeps track of total score.
        score_tracker = 0

        #This for loop iterates over each value in the list, comparing to the answer key.
        for n in range(number_ans):
            a = answerkey[n]
            b = student_ans[n+1]

            #A series of if/elif/else statements give and take points according to answers.
            if a == b:
                score_tracker += 4
            elif b == "":
                score_tracker += 0
            else: 
                score_tracker -= 1
        print(score_tracker)

如有任何帮助,我们将不胜感激。

在我和我的教授之间,我们已经弄清楚出了什么问题。结果文件的每一行中的最后一个元素包含“\n”以将其换行,我没想过要删除它,因为它并没有阻止代码打印出两个正确的答案,仅来自正确添加分数。 (计算机看到了D和Dn\,但在答案键上显示了D和D作为最终答案。

我想这对我来说的教训是总是看电脑看到的,这不一定是我看到的。