终止python文本冒险

时间:2015-12-25 17:41:31

标签: python

所以我写了一些文字冒险并且有很多嵌套的if语句。但是,有时候我想在其中一个if语句中终止程序以给出" GAME OVER"。我已经尝试过quit()和exit(),但最多还是会输出错误信息:

Traceback (most recent call last):
  File "<string>", line 9, in 0
SystemExit: 0

我没有使用任何try / except语句,只是语句。 例如:

import sys
if True:
    print "Hello guv'na"
    if True:
       print "Good day, Good day"
       sys.exit(0)
if True:
    print "What's all this then?"

的产率:

Hello guv'na
Good day, Good day
Traceback (most recent call last):
  File "/Users/austin/test.py", line 6, in 0
builtins.SystemExit: 0

我只是希望程序在&#34之后终止;美好的一天,美好的一天&#34;没有消息。这有可能吗?

2 个答案:

答案 0 :(得分:0)

如果您看到异常,则意味着某些东西正在捕捉并打印出来。

我的猜测是你有一个像这样的try / except块:

try:
    do_something()
except:
    print_exc()

此处except:子句未指定异常类型,这意味着将捕获所有类型的异常(包括SystemExit)。

except:子句用于清理代码,通常在捕获之后重新引发异常。除非你绝对需要它们,否则请避开它们。

请改用:

try:
    do_something()
except Exception:
    print_exc()

这样,您只会捕获Exception个子类,即除SystemExitKeyboardInterruptGeneratorExit之外的所有标准例外。

答案 1 :(得分:0)

蛮力方法(下面)应该做你想要的(无论如何都要杀掉程序)。

import os
os.system('pkill python')