linecache не работает в операторе if?
import linecache
for i in range (4):
file = open("looptestofreceivingquestions.txt", "r")
lineq = i+1
print(linecache.getline("looptestofreceivingquestions.txt", lineq))#gets line q depending on iteration
question = input("what is the answer?")
linea = i+5
answer = linecache.getline("looptestofreceivinganswers.txt", linea)
file.close()
print(question)
print(answer)
if question == answer:
print("correct")
elif question != answer:
print("wrong")
Независимо от того, что он печатает "неправильно". Я делаю тест, который должен уметь читать вопросы и ответы из файла. цикл for просто повторяет код для каждого вопроса и ответа. Кроме того, вопрос и ответ одинаковы, что видно по командам печати (например, если один из вопросов - 2+2, а я вывел 4, он скажет, что ответ - 4, а ответ - 4). Я использовал один и тот же файл для вопросов и ответов, и каждый из них хранится в отдельной строке.
1 ответ
Решение
Похоже, что answer
имеет символ новой строки (\n
) в конце этого; мы должны раздеть это:
answer = linecache.getline("looptestofreceivinganswers.txt", linea).rstrip('\n')