为什么我的输入将 'A' 和 'B' 转换为 'B' 和 'B'

Why does my input convert 'A' and 'B' to 'B' and 'B'

我正在解决以下问题:https://dmoj.ca/problem/ccc11s2

出于某种原因,当我输入 A、B、A、B 时,它会在下面的代码中将 A 转换为 B。谁能帮助我了解发生了什么以及我的代码哪里出错了?好像我得到的唯一总和是 1,我不知道我哪里搞砸了。

#输入将包含数字 () 后跟行。这些线由 学生回答行(每行有 A、B、C、D 或 E 之一),然后是正确答案行(每行有 A、B、C、D 或 E 之一),顺序相同当学生回答问题时(也就是说,如果行是学生的回答,那么行将包含该问题的正确答案)

n = int(输入())

总和 = 0

对于范围内的 s(n):

student = input()

对于范围内的 t(n):

teacher = input()

我在范围内(len(学生)):

if student[i] == 'A' and teacher[i] == 'A':
    sum = sum + 1
elif student[i] == 'B' and teacher[i] == 'B':
    sum = sum + 1
elif student[i] == 'C' and teacher[i] == 'C':
    sum = sum + 1
elif student[i] == 'D' and teacher[i] == 'D':
    sum = sum + 1
elif student[i] == 'E' and teacher[i] == 'E':
    sum = sum + 1
else:
    sum = sum

打印(求和)

在 for 循环中获取输入时,您必须将其存储在一个数组中,但在您的情况下,您将其存储在一个字符串中,因此无论何时 for 循环迭代而不是附加值,它都会替换旧值。要获得正确的结果,您必须更正以下步骤。他们需要在您的最终 for 循环中稍作改进才能获得正确的总和值。

n = int(input())
sum = 0
student = []
teacher = []

for s in range(n):
   student.append(input())

for t in range(n):
   teacher.append(input())


for i in range(len(student)):
   if student[i] == teacher[i]:
      sum = sum + 1

试试这个代码并评论你的结果。