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

Python:为什么我的代码总是告诉我答案是错误的,而事实并非如此?,python,python-3.x,if-statement,input,equals,Python,Python 3.x,If Statement,Input,Equals,这将从我的文件中打印出一个随机选择的州,并打印出该州的国会大厦,这就是问题的答案。无论我是否键入正确答案,我总是从我的else语句中收到“错误”的答案,而且我似乎无法找出原因 遍历文件会返回一个字符串,该字符串末尾有一个换行符,因此必须使用.strip()将其删除。应该用键,value=line.strip().split(',')替换循环中的第一行 另外,您不需要random.choice列表的键,您只需执行answer=random.choice(d)您可以提供示例输入(包括文件)吗?另外,

这将从我的文件中打印出一个随机选择的州,并打印出该州的国会大厦,这就是问题的答案。无论我是否键入正确答案,我总是从我的else语句中收到“错误”的答案,而且我似乎无法找出原因


遍历文件会返回一个字符串,该字符串末尾有一个换行符,因此必须使用
.strip()
将其删除。应该用
键,value=line.strip().split(',')
替换循环中的第一行


另外,您不需要
random.choice
列表的键,您只需执行
answer=random.choice(d)

您可以提供示例输入(包括文件)吗?另外,您不需要随机选择。选择列表的键,您只需执行
answer=random.choice(d)
。您可能有一些额外的空格,请尝试
if-answer.strip().lower()==StudentAnswer.strip().lower()
我们都编写了一些行为不符合预期的代码。当你学习编程时,你只需要接受这个事实。您还需要学习如何调试代码以发现缺陷并修复它们。有关如何调试代码的提示,请阅读。我每天都使用这些技术来解决我编写的代码(或其他人编写的代码)中的问题。它们是您作为一名初出茅庐的程序员早期教育的关键部分。这些值有一个尾随的换行符(
\n
),这导致了不匹配。谢谢,将其更改为key,value=line.strip()。split(“,”)修复了我的问题。这很简单,我只是没有考虑。
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.')