python - проверять в конце цикла, нужно ли снова запускать - PullRequest
2 голосов
/ 07 ноября 2008

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

"цикл снова? Y / n"

Ответы [ 4 ]

13 голосов
/ 07 ноября 2008
while True:
    func()
    answer = raw_input( "Loop again? " )
    if answer != 'y':
        break
6 голосов
/ 07 ноября 2008
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
5 голосов
/ 08 ноября 2008

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

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) первый подход противоречит предполагаемому использованию «пока»; 3) у ваших подпрограмм всегда должна быть единственная точка выхода

1 голос
/ 26 ноября 2008
While raw_input("loop again? y/n ") != 'n':
    do_stuff()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...