python - 在循环结束时检查是否需要再次运行

python - check at the end of the loop if need to run again

提问人:user33061 提问时间:11/8/2008 最后编辑:Anupamuser33061 更新时间:12/27/2016 访问量:4755

问:

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

“又循环了?是/否”

Python 循环

评论


答:

14赞 Martin Cote 11/8/2008 #1
while True:
    func()
    answer = raw_input( "Loop again? " )
    if answer != 'y':
        break
6赞 HanClinto 11/8/2008 #2
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 11/8/2008
+1:正式退出条件,没有中断(另外,我删除了多余的打印)
0赞 HanClinto 11/8/2008
啊,谢谢 S. Lott。我正在比赛,错过了那场比赛——谢谢!:)
5赞 Jason L 11/8/2008 #3

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

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) 在某些语言的嵌套范围中可能会有违反直觉的行为;2)第一种方法与“while”的预期用法相悖;3)你的例程应该始终有一个单一的出口点break

评论

0赞 tzot 11/8/2008
现在,只要你保留两个代码位并删除最后三段,我保证我会为你投赞成票;)
0赞 Jason L 11/9/2008
在那里,我把它说得更直截了当。只是出于好奇,我说的话有问题还是我只是这么说的?
1赞 J.T. Hurley 11/26/2008 #4
While raw_input("loop again? y/n ") != 'n':
    do_stuff()