#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()