Cómo usar sys.exit () en 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's 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 

Estoy tratando de decirle al progtwig que salga si roll == 1 pero no pasa nada y solo me da un mensaje de error cuando bash usar sys.exit()


Este es el mensaje que muestra cuando ejecuto el progtwig:

 Traceback (most recent call last): line 33, in  sys.exit() SystemExit 

Creo que puedes usar

 sys.exit(0) 

Puedes comprobarlo aquí en el documento de python 2.7:

El argumento opcional arg puede ser un entero que dé el estado de salida (por defecto a cero) u otro tipo de objeto. Si es un número entero, cero se considera “terminación exitosa” y cualquier valor distinto de cero se considera “terminación anormal” por shells y similares.

sys.exit() genera una excepción de SystemExit que probablemente esté asumiendo como un error. Si desea que su progtwig no aumente SystemExit pero regrese correctamente, puede ajustar su funcionalidad en una función y regresar desde los lugares que planea usar sys.exit

Utilizando 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! 

A continuación, cambie la impresión “oops” a un raise SystemExit