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')
Другие вопросы по тегам