Условный оператор не работает, чтобы показать, равны ли две строки. (базовый python)

#python

#python

Вопрос:

Я только начинаю с Python, это часть моей первой программы. Оператор if в конце всегда выводит «Пожалуйста, попробуйте еще раз», даже если строки идентичны и должны выводить «Хорошо сделано».

Я добавил, print(usranswer) print(correctans) чтобы убедиться, что обе строки равны, какими они и являются, я также добавил, usranswer.strip() correctans.strip() чтобы удалить любые несуществующие пробелы, и код по-прежнему не выдает правильный результат.

Любые другие предложения были бы полезны, спасибо.

 fail = 0
Qnumber = 1

while fail != 2:

    import random

    q = random.randint(1,5)

    with open("answers.txt", "r") as answers:
        for _ in range(q):
            answer = answers.readline()

    with open("questions.txt", "r") as initials:
        for _ in range(q):
            question = initials.readline()

    print("question number")
    print(str(Qnumber))

    print('Please guess the name of this song, the name of the artist and the first letter in each word of the song title are below')

    print(question)

    usranswer = str(input())
    correctans = str(answer)

    usranswer.strip()
    correctans.strip()

    print(usranswer)
    print(correctans)

    if correctans == usranswer:
        print('Well done')
        score = score   3
    else:
        fail = fail   1
        print('Please try again')
  

Даже когда оба значения correctans и userans точно равны, он все равно печатается, пожалуйста, повторите попытку, когда она должна быть напечатана хорошо

Комментарии:

1. Вы не фиксируете возвращаемое значение strip() . correctans.strip() не изменяет строку на месте: она возвращает новую строку.

2. Спасибо, код теперь работает

Ответ №1:

Ваши вызовы .strip() возвращают урезанную версию строки, но вы ничему их не присваиваете

Вы могли бы попробовать это

 usranswer = input().strip()
correctans = answer.strip()