Как использовать sys.exit() в Python
player_input = '' # This has to be initialized for the loop
while player_input != 0:
player_input = str(input('Roll or quit (r or q)'))
if player_input == q: # This will break the loop if the player decides to quit
print("Now let see if I can beat your score of", player)
break
if player_input != r:
print('invalid choice, try again')
if player_input ==r:
roll= randint (1,8)
player +=roll #(+= sign helps to keep track of score)
print('You rolled is ' + str(roll))
if roll ==1:
print('You Lose :)')
sys.exit
break
Я пытаюсь сказать программе выйти, если roll == 1
, но ничего не происходит, и она просто выдает мне сообщение об ошибке, когда я пытаюсь использовать sys.exit()
Это сообщение отображается при запуске программы:
Traceback (most recent call last):
line 33, in <module>
sys.exit()
SystemExit
Ответы
Ответ 1
Я думаю, вы можете использовать
sys.exit(0)
Вы можете проверить его здесь в документе python 2.7:
Необязательный аргумент arg может быть целым числом, дающим статус выхода (по умолчанию - ноль) или другой тип объекта. Если это целое число, нуль считается "успешным завершением", и любое ненулевое значение считается "аномальным завершением" оболочками и тому подобное.
Ответ 2
sys.exit()
вызывает исключение SystemExit
которое вы, вероятно, считаете некоторой ошибкой. Если вы хотите, чтобы ваша программа не повышала SystemExit, но возвращалась изящно, вы можете обернуть свою функциональность функцией и вернуться из мест, которые вы планируете использовать sys.exit
Ответ 3
вы не импортировали sys в свой код и не закрывали() при вызове функции...
попробуйте:
import sys
sys.exit()
Ответ 4
Использование 2.7:
from functools import partial
from random import randint
for roll in iter(partial(randint, 1, 8), 1):
print 'you rolled: {}'.format(roll)
print 'oops you rolled a 1!'
you rolled: 7
you rolled: 7
you rolled: 8
you rolled: 6
you rolled: 8
you rolled: 5
oops you rolled a 1!
Затем измените "oops" print на raise SystemExit