Python: почему мой код постоянно говорит мне, что ответ неправильный, а его нет? - PullRequest
0 голосов
/ 03 апреля 2020
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, независимо от того, набираю ли я правильный ответ или нет, и я не могу понять, почему.

пример того, как мой StatesCapitals.txt выглядит как

1 Ответ

1 голос
/ 03 апреля 2020

Итерация по файлу возвращает строку с новой строкой в ​​конце, поэтому вы должны удалить ее с помощью .strip(). Вам следует заменить 1-ю строку в l oop на key, value = line.strip().split(',').

Кроме того, вам не нужно random.choice ключи списка, вы можете просто сделать answer = random.choice(d).

...