2015-12-25 5 views
1

, поэтому я пишу небольшое текстовое приключение и имею множество вложенных операторов if. Тем не менее, наступает момент, когда я хочу завершить программу в одном из этих операторов if, чтобы дать «GAME OVER». Я пытался бросить курить() и выход(), но в лучшем случае они по-прежнему выдает сообщение об ошибке:Завершение текстового приключения python

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

Я не использую любую попытку/за исключением заявлений, только если заявления. Например:

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 

Я просто хочу, чтобы программа прекратить после того, как "Добрый день, хороший день" без сообщения. Это возможно?

+0

попробовать 'импорт os' и использовать' os._exit (код) ' –

+3

Добро пожаловать в StackOverflow. Пожалуйста, предоставьте [mcve]. –

+1

Обычный способ принудительного выхода из Python состоит в том, чтобы «импортировать sys» в верхней части вашего файла, а затем выполнить 'sys.exit (0)', который будет молча работать с статусом '0', то есть без ошибок. –

ответ

0

Если вы видите это исключение, это означает, что что-то ловит и печатает.

Я предполагаю, что у вас есть попробовать/за исключением блока, как это:

try: 
    do_something() 
except: 
    print_exc() 

Здесь статья except: не имеет тип исключения указанного, это означает, что все рода исключений (включая SystemExit) будут пойманы.

Bare except: clauses предназначены для кода очистки и, как правило, повторно поднимают исключение после его улова. Избегайте их, если они вам не нужны.

Используйте вместо этого:

try: 
    do_something() 
except Exception: 
    print_exc() 

Таким образом, вы будете ловить только Exception подкласс, то есть все стандартные исключения, кроме SystemExit, KeyboardInterrupt и GeneratorExit.

0

Подход грубой силы (ниже) должен делать то, что вы хотите (хорошо убить программу в любом случае).

import os 
os.system('pkill python') 
Смежные вопросы