如果没有工作要做,我的循环如何分支回寻找输入?
我正在制作一个基本上要求 3 或 4raw_input
行的脚本,然后根据这些进行一些工作,然后无限循环。但是,这些raw_input
行是选择(我正在寻找它们来键入几个语句之一)。我认为简单地做这样的事情可能更容易和更清洁,而不是一堆布尔值和 while 循环来确保它是一个可接受的语句:
if theInput != 'Acceptable Statement' and theInput != 'Another acceptable statement':
restartLoop()
if theSecondInput != 'Acceptable Statement' and theInput != 'Another acceptable statement':
restartLoop()
依此类推,对于我需要的每一个输入。它将中止当前循环并重新启动另一个循环,就好像它已经完成了一样。由于在收集和批准所有数据之前实际上没有任何事情发生,因此这不会导致任何问题。我意识到这是另一种选择:
if theInput == 'Acceptable Statement' or theInput == 'Another acceptable statement':
if theSecondInput == 'Acceptable Statement' or theInput == 'Another acceptable statement':
doThings()
else:
doNothing()
else:
doNothing()
但是,我希望它在用户输入错误后结束循环,而不是问他们 5 个问题并最终告诉他们他们弄错了 #2。
编辑:为了更清楚一点,我仍然想无限循环(除了离开外壳会离开循环),我只想重新启动循环而不完成。IE,在制作许多产品时,您会陷入几个步骤的循环中。但是,如果你错误地执行了一个步骤,你就会扔掉有缺陷的产品并重新开始,而没有完成。