Почему мой цикл while повторяет ввод пользователя?

Обновлено: Спасибо всем, кто прокомментировал, решение было таким простым. Мне пришлось удалить надпись «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

Я не могу понять, почему после [Начало истории] перепечатывается «да».

Кроме того, я сейчас избегаю продвинутых методов, поскольку это небольшой проект, который я делаю для онлайн-курса.

Спасибо!

Последняя команда в скрипте — print(understand), отсюда и последняя yes.

Andrej Kesely 25.02.2024 21:44

1) Почему print(help) вместо print(options)? 2) Почему print(Begin) в цикле, а не после цикла?

chepner 25.02.2024 21:46
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
2
73
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В последней строке вы набрали «печать(понимать)». Также переместите 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. Возможно, это правильный ответ, но было бы очень полезно предоставить дополнительные пояснения к вашему коду, чтобы разработчики могли понять ваши рассуждения. Это особенно полезно для новых разработчиков, которые не так хорошо знакомы с синтаксисом или пытаются понять концепции. Не могли бы вы отредактировать свой ответ, включив в него дополнительную информацию на благо сообщества?

Jeremy Caney 28.02.2024 02:38

Другие вопросы по теме