#python #variables #while-loop
#python #переменные #во время цикла
Вопрос:
У меня возникли некоторые проблемы с циклом while. Я запускаю его в eclipse и ввел исходный код:
a = raw_input("Mom im hungry!!!!!! FEED MEEEEE" )
while a != "Feed yourself":
print("Thats gross")
В результате, когда я набираю неправильный ответ, он отвечает::
Thats gross
thats gross
и так далее.
Комментарии:
1. Ну, конечно, это будет повторяться, так как его условие всегда истинно. Почему, вы ожидали, что он сделает что-то еще?
2. Чтобы расширить комментарий @DavidZaslavsky, вам нужно скопировать назначение
a
внутри цикла while, иначе условие никогда не изменится.3. Нет, я бы хотел, чтобы ты видел… это не позволит мне снова вводить данные. он просто постоянно твердит: «Это мерзко, это мерзко» и так далее.
4. скопируйте присваивание «a», что вы имеете в виду
Ответ №1:
Чего вы действительно хотите, так это:
a = raw_input("Mom im hungry!!!!!! FEED MEEEEE" )
while a != "Feed yourself":
print("Thats gross")
a = raw_input("Mom im hungry!!!!!! FEED MEEEEE" ) # do something that may alter a !
потому что без 2-й строки в цикле while…
- ничто не изменяет переменную a,
- следовательно, a по-прежнему не «кормит себя»
- следовательно, условие истинно,
- следовательно, содержимое цикла повторяется!
Комментарии:
1. Я всегда поражаюсь, как они
"no-brainers"
, как правило, получают максимальную отдачуreps
. Если бы я был представителем wh.re … 😉
Ответ №2:
Выполняется raw_input
только один раз, а затем a
сохраняет свое значение. Если вы не ввели "Feed yourself"
его в первый раз, он будет зацикливаться вечно.
Ответ №3:
a = raw_input("Mom im hungry!!!!!! FEED MEEEEE" )
while a != "Feed yourself":
print("Thats gross")
a = raw_input("Mom im hungry!!!!!! FEED MEEEEE" )