Terminando un progtwig de Python

¿Qué comando usas en python para terminar un progtwig?

es decir, el equivalente de “end” en basic, o “quit” en BASH.

Veo que “break” te saca de un bucle, y “quit” está todo relacionado con cosas de “clase” que aún no comprendo. Lo intenté

import sys sys.exit() 

pero mostrará el siguiente error:

 Traceback (most recent call last): File "C:\Documents and Settings\....\Desktop\current file_hand\Python_1.py", line 131, in  sys.exit() SystemExit 

¿Hay alguna solución para ello?

sys.exit() genera la excepción SystemExit .

Si no atrapas esa excepción el progtwig termina.

Ya que está obteniendo esa salida, no estoy seguro de lo que está sucediendo, pero supongo que está detectando todas las excepciones e imprimiéndolas usted mismo:

 try: ... except: print exception somehow raise 

Si ese es el caso, no hagas eso. captura Exception lugar:

 ... except Exception: ... 

De esa manera, no captarás cosas que no estén destinadas a ser atrapadas (como SystemExit ).

sys.exit (error_code)

Error_code será 0 para una salida normal, 1 o algún otro número positivo para una salida debido a un error de algún tipo, por ejemplo, el usuario ha ingresado los parámetros incorrectos.

sys.exit () “no está definido en algunas architectures”, (aunque funcionó cuando lo probé en mi caja de Linux)

Los documentos oficiales de python explican esto más completamente.

Es una muy buena idea que todos sus progtwigs y scripts sigan la convención del código de retorno; 0 para OK, algo más para error, (normalmente 1)

Por ejemplo, si ejecuta un script que extrae algunos datos de una base de datos; devolviendo 0 y sin salida, significa que la base de datos está perfectamente bien, simplemente no hay nada en ella (o nada que coincida con su consulta). devolviendo 1 y sin salida significa que hay un error en la base de datos, todo el proceso debería abortarse, ya que continuar dañaría el otro sistema también.

También debe considerar alternativas para salir directamente. A menudo, el return funciona igual de bien si envuelve el código en una función. (Mejor, de hecho, porque evita sys.exit () rareza).

 def main(): ...do something... if something: return # <----- return takes the place of exit ...do something else... main() 
 sys.exit() #to exit the program return #to exit from a function 

sistemas de importación

sys.exit (0)

Intente ejecutar un intérprete de Python fuera de su IDE. En mi instalación de Windows, la simple línea de comandos python.exe , ambas opciones funcionan:

 >>> import sys >>> sys.exit() 

o

 >>> raise SystemExit 

En su caso, es probable que su error tenga un bloque excepto que está detectando la excepción SystemExit, como esto:

 import sys try: sys.exit(return_code) except: pass 

La forma correcta de solucionar su problema es eliminar la parte de excepción: y, en su lugar, simplemente detectar las Excepciones que posiblemente se planteen. Por ejemplo:

 try: # Code which could raise exceptions except (NameError, ValueError): # Do something in case of NameError or ValueError, but # ignore other exceptions (like SystemExit) 

Sin embargo, si realmente quería que su progtwig saliera, el siguiente código funcionará:

 import os try: os._exit(return_code) except: pass 

Esto se cerrará incluso con la cláusula except: ya que solo llama directamente a la función C del mismo nombre que mata el proceso. Esto no se recomienda a menos que sepa lo que está haciendo, ya que no llamará a los manejadores de limpieza ni a los buffers de IO abiertos.