Python - проверьте в конце цикла, нужно ли запускать снова

Это действительно простой вопрос, но я не могу думать о втором. Как настроить цикл, который каждый раз при запуске функции спрашивает, делать ли это снова? Итак, он запускает, а затем говорит что-то вроде

"снова петля? д / н"

Почему в 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 может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
3 740
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий
while True:
    func()
    answer = raw_input( "Loop again? " )
    if answer != 'y':
        break

опередить меня. это тот.

helloandre 07.11.2008 23:59

Ха-ха, я тоже слишком медленный :)

Hannes Ovrén 08.11.2008 00:00
keepLooping = True
while keepLooping:
  # do stuff here

  # Prompt the user to continue
  q = raw_input("Keep looping? [yn]: ")
  if not q.startswith("y"):
    keepLooping = False

+1: формальное условие выхода без перерыва (также я удалил лишнюю печать)

S.Lott 08.11.2008 00:06

Ааа, спасибо С. Лотт. Я участвовал в гонках и пропустил тот - спасибо! :)

HanClinto 08.11.2008 00:09

Есть два обычных подхода, оба уже упомянутые, которые сводятся к следующему:

while True:
    do_stuff() # and eventually...
    break; # break out of the loop

или же

x = True
while x:
    do_stuff() # and eventually...
    x = False # set x to False to break the loop

Оба будут работать правильно. С точки зрения "звукового дизайна" лучше всего использовать второй метод, потому что 1) break может иметь противоречивое поведение во вложенных областях видимости на некоторых языках; 2) первый подход противоречит предполагаемому использованию «while»; 3) ваши распорядки всегда должны иметь одну точку выхода

Теперь, если вы сохранили два бита кода и удалили последние три абзаца, я обещаю, что проголосую за вас;)

tzot 08.11.2008 04:32

Вот, я подошел к делу. Просто из любопытства, было ли что-то не так в том, что я сказал, или я просто сказал это?

Jason L 08.11.2008 20:31
While raw_input("loop again? y/n ") != 'n':
    do_stuff()

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