对于程序菜单中的"q"(退出)选项,我有以下代码:
elif choice == "q":
print()
Run Code Online (Sandbox Code Playgroud)
这是可行的,直到我把它放在一个无限循环,这不断打印空行.有没有可以退出程序的方法?另外,你能想到另一种解决方案吗?
Gre*_*ill 84
一种方法是:
sys.exit(0)
Run Code Online (Sandbox Code Playgroud)
你import sys
当然必须这样做.
另一种方法是break
摆脱你的无限循环.例如,您可以这样做:
while True:
choice = get_input()
if choice == "a":
# do something
elif choice == "q":
break
Run Code Online (Sandbox Code Playgroud)
另一种方法是将主循环放在一个函数中,并使用return
:
def run():
while True:
choice = get_input()
if choice == "a":
# do something
elif choice == "q":
return
if __name__ == "__main__":
run()
Run Code Online (Sandbox Code Playgroud)
run()
使用该函数的唯一原因return
是(与其他语言不同),您不能直接return
从Python代码的主要部分(不在函数内部的部分).
tzo*_*zot 19
结束程序的实际方法是打电话
raise SystemExit
Run Code Online (Sandbox Code Playgroud)
普通的SystemExit
或None
作为单个参数将进程的退出代码设置为零.任何非整数异常值(raise SystemExit("some message")
)都会将异常值打印到sys.stderr
并将退出代码设置为1.整数值将进程的退出代码设置为值:
$ python -c "raise SystemExit(4)"; echo $?
4
Run Code Online (Sandbox Code Playgroud)
Rob*_*let 11
在Python 3中有一个exit()
函数:
elif choice == "q":
exit()
Run Code Online (Sandbox Code Playgroud)