<p>如果没有更多的代码,很难向您展示您做错了什么,但我想您是如何设置的:</p>
<pre><code>def WantToQuit():
Quit = raw_input("Please enter y if you are sure you want to quit, if not press n to return ")
if Quit == 'y':
print ('')
elif Quit == 'n':
DisplayMenu()
return WantToQuit()
while(True):
DisplayMenu()
# Some logic to get input and handle it
# For example, something like
selection = raw_input("Please make a selection: ")
if(selection == "1"):
doSomething()
elif(selection == "2"):
doSomethingElse()
elif(selection == "q"):
WantToQuit()
else:
# TODO: Handle this !
pass
</code></pre>
<p>我会这样做:</p>
^{pr2}$
<p>或者,您可以执行以下操作:</p>
<pre><code>def WantToQuit():
Quit = raw_input("Please enter y if you are sure you want to quit, if not press n to return ")
if Quit == 'y':
sys.exit(0)
elif Quit == 'n':
return # Do nothing really
else:
# TODO: Handle this !
pass
while(True):
DisplayMenu()
# Some logic to get input and handle it
# For example, something like
selection = raw_input("Please make a selection: ").lower()
if(selection == "1"):
doSomething()
elif(selection == "2"):
doSomethingElse()
elif(selection == "q"):
WantToQuit()
else:
# TODO: Handle this !
pass
</code></pre>
<p>第一个例子中,<code>WantToQuit</code>函数返回一个布尔值,无论用户是否真的想要退出。如果是这样,无限循环被打破,程序自然退出。在</p>
<p>第二个示例处理<code>WantToQuit</code>函数内的退出,调用<code>sys.exit()</code>立即退出。在</p>
<p>第一种可能更可取,尽管这两种方法都在实践中使用。在</p>