Python:为什么我的代码总是告诉我答案是错误的,而事实并非如此?

Python: why does my code keep telling me the answer is wrong when its not?

import random

d = {}
with open('StatesCapitals.txt') as f:
    for line in f:
        key, value = line.split(',')
        d[key] = value



HI = random.choice(list(d.keys()))
print(HI)

answer = (d[HI])

print (answer)

StudentAnswer = (input('Type your answer: '))

if answer.lower() == StudentAnswer.lower():
    print('Correct!')
else:
    print('Wrong.')

这将从我的文件中打印出一个随机选择的州,并打印出该州的国会大厦,这是问题的答案。无论我是否键入正确答案,我总是从我的 else 语句中收到 "wrong",我似乎无法弄清楚为什么。

example of what my StatesCapitals.txt looks like

遍历文件 returns 一个字符串末尾有一个换行符,所以你必须用 .strip() 删除它。您应该将循环中的第一行替换为 key, value = line.strip().split(',')

顺便说一句,你不需要 random.choice 列表的键,你可以 answer = random.choice(d).