Проблема с условным внутри цикла while - PullRequest
1 голос
/ 29 мая 2020
• 1000 Пока я запускаю следующий код, он печатается один раз в третий раз и прерывается после двойного нажатия "quit". Может кто-нибудь указать, что я делаю не так. Спасибо.
prompt = "Enter your topping: "

while True: 
  topping = input(prompt)
  if input(prompt) == "quit":
    break
  else:
    print(f"{input(prompt)} is added")

Введите ваш топпинг: пепперони Введите свой топпинг: пепперони Введите ваш топпинг: сыр будет добавлен сыр Введите ваш топпинг: quit Введите ваш топпинг: quit

Ответы [ 2 ]

3 голосов
/ 29 мая 2020

Вы, вероятно, должны использовать это - if topping == "quit":

В вашем коде вы используете if input(prompt) == "quit":, который запрашивает ввод дважды, и здесь вы ошибаетесь.

Кроме того, я не знаю, что вы делаете в последней строке, но последняя строка должна быть примерно такой - print("topping is added") OR print(topping+"topping is added"), если вы хотите отобразить верхнюю часть, которую пользователь ввел как ну.

После того, как вы ввели ввод с использованием input(prompt), нет необходимости вызывать одно и то же выражение снова и снова, поскольку оно будет снова принимать ввод (что не то, что мы хотим). Вместо этого используйте topping, который уже сохранил введенные пользователем данные.

Надеюсь, он прояснит, где вы ошиблись.

0 голосов
/ 29 мая 2020

Вы запрашиваете ввод дважды. В первый раз вы сохраняете значение в topping и больше никогда с ним ничего не делаете.

Затем вы снова запрашиваете ввод, после «если» в if input(prompt), а затем вы что-то делаете на основе того, что он возвращает, и проверяет на соответствие "quit".

Вы должны что-то делать с переменной topping вместо того, чтобы спрашивать снова. Поскольку вы учитесь, я не собираюсь говорить вам, что делать.


Важнее понять, что вызовы функций что-то делают. Это topping = input(prompt) не похоже на математическое выражение равенства, в котором вы можете заменить input(prompt) на все места, которые вы имеете в виду topping. Верх представляет собой некоторую постоянную величину в виде объекта. Prompt () - это набор инструкций, которые интерпретатор будет go выполнить и поместить результат этих инструкций в код. Этот знак «=» не является утверждением равенства. Это присвоение имени одного значения.

...