Обновлено: Спасибо всем, кто прокомментировал, решение было таким простым. Мне пришлось удалить надпись «print(понимать)» внизу. Для тех, кто спрашивает, почему я не сделал то или это, это потому, что я понятия не имею, что делаю, но я доберусь до этого.
В моем цикле while опция «да» приводит к выводу переменной, но она также повторяет ввод «да» пользователя.
# Print list of input options
options = ("""
Here is a list of your options besides "yes" or "no":
Help - Shows this list.
Go Back - Head back to the previous room.
""")
help = ["help", "h", "options"]
# Go Back
go_back = ["go back", "back"]
# Yes
yes = ["yes", "y"]
# No
no = ["no", "n"]
Begin = lines = ["Story start"]
while True:
understand = input("Do you understand?\n")
if understand.lower() in help:
print("\n")
print(help)
print("\n")
continue
elif understand.lower() in go_back:
print("\nSorry, there's nowhere to go right now. Try again.\n")
continue
elif understand.lower() in yes:
print("\n")
print(Begin)
break
else:
print(f"\nSorry, let's try this again.\n")
continue
print(understand)
Заранее прошу прощения, я новичок в Python и не знаю, как форматировать вопрос на этом сайте.
Я спрашиваю игрока, понимают ли он предыдущие инструкции, и когда я проверяю его с использованием переменной «да», он выводит переменную «Начало», но по какой-то причине впоследствии он также повторяет введенное пользователем «да». Так:
Do you understand?
Yes
[‘Story start’]
Yes
Я не могу понять, почему после [Начало истории] перепечатывается «да».
Кроме того, я сейчас избегаю продвинутых методов, поскольку это небольшой проект, который я делаю для онлайн-курса.
Спасибо!
1) Почему print(help)
вместо print(options)
? 2) Почему print(Begin)
в цикле, а не после цикла?
В последней строке вы набрали «печать(понимать)». Также переместите print в строку 31) Может быть, вы хотели, чтобы это была функция?
Begin = lines = ["Story start"] #<--------------------- array
while True:
understand = input("Do you understand?\n")
if understand.lower() in help:
print("\n")
print(help)
print("\n")
continue
elif understand.lower() in go_back:
print("\nSorry, there's nowhere to go right now. Try again.\n")
continue
elif understand.lower() in yes: #<---------------- condition
print("\n")
print(Begin) #<------------- function
break
else:
print(f"\nSorry, let's try this again.\n")
continue
print(understand)
#You typed yes so it ran the function
Благодарим вас за вклад в сообщество Stack Overflow. Возможно, это правильный ответ, но было бы очень полезно предоставить дополнительные пояснения к вашему коду, чтобы разработчики могли понять ваши рассуждения. Это особенно полезно для новых разработчиков, которые не так хорошо знакомы с синтаксисом или пытаются понять концепции. Не могли бы вы отредактировать свой ответ, включив в него дополнительную информацию на благо сообщества?
Последняя команда в скрипте —
print(understand)
, отсюда и последняяyes
.