2

这是一个非常基本的问题,但我无法想到第二个。我如何设置一个循环,每次内部函数运行时询问是否再次执行。所以它运行它然后说类似的东西;

“再次循环?y/n”

4

4 回答 4

14
while True:
    func()
    answer = raw_input( "Loop again? " )
    if answer != 'y':
        break
于 2008-11-07T20:58:56.610 回答
6
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
于 2008-11-07T20:59:57.497 回答
5

有两种常用的方法,都已经提到过,它们相当于:

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)你的例程应该总是有一个单一的出口点

于 2008-11-07T21:22:20.010 回答
1
While raw_input("loop again? y/n ") != 'n':
    do_stuff()
于 2008-11-26T15:12:09.837 回答