Búsqueda de sitios web

3 formas de finalizar un programa en Python


Cómo se detiene su programa Python puede ser lo último que tenga en mente, pero aún así es importante tenerlo en cuenta.

Saber cómo finalizar un programa es importante y puede resultar útil en varios escenarios. Por ejemplo, si estás creando un juego simple, puedes salir cuando un usuario ingresa algo específico o cuando se cumple una determinada condición. Descubra las diferencias entre las tres formas de detener un programa Python.

1. Usando quit() o exit()

Una de las formas más sencillas de finalizar un programa Python es utilizar cualquiera de los métodos integrados, quit() o exit(). Cuando llame a quit() o exit(), el programa finalizará.

Las funciones quit() y exit() hacen exactamente lo mismo, es sólo una cuestión de preferencia personal cuál utilices.

A continuación se explica cómo puede utilizar la función quit() para finalizar un programa Python:

for num in range(10):
    if num == 9:
        quit()
    print(num)

El programa de muestra anterior imprimirá números enteros del 0 al 8 en la consola. Una vez que num es 9, el programa sale. También puede utilizar el comando quit() para salir del entorno de aprendizaje y desarrollo integrado de Python (IDLE), que le permite ejecutar scripts de Python de forma interactiva.

Tenga en cuenta que tanto quit() como exit() dependen del módulo site, por lo que no debe usarlos en entornos de producción. El siguiente método, sys.exit(), es una mejor opción.

2. Usando sys.exit()

Cuando llamas a sys.exit() en tu programa, Python genera una excepción SystemExit. Acepta un argumento opcional para especificar un código de salida entero (0 por defecto). También puede pasar un objeto que dará como resultado un código de salida de 1 e imprimirá el valor de la cadena del objeto como error estándar.

import sys # Remember to include this statement at the top of the module
for num in range(10):
    if num == 5:
        sys.exit("You exited the program")
    print(num)

El resultado del programa será el siguiente:

Al igual que los métodos quit y exit, sys.exit() también genera una excepción SystemExit. Esto significa que puede llamar a sys.exit() o raise SystemExit(). Ambos aceptan un argumento opcional.

Deberías aprender sobre las funciones más importantes de Python si no entiendes cómo funciona el código anterior.

3. Usando os._exit()

La tercera forma de salir de un programa es el método especial os._exit(). Puede pasarle un argumento opcional para especificar un código de estado de salida. os._exit() proviene del módulo os y finaliza el proceso inmediatamente sin realizar las actividades de limpieza normales que ocurren cuando se cierra un programa Python.

Debido a que esta función finaliza sin realizar una limpieza normal, solo debe usarla en casos especiales. Según la documentación de Python, un buen ejemplo es un proceso hijo después de una bifurcación (un nuevo proceso creado usando os.fork()).

A continuación se muestra un ejemplo de cómo utilizar la función os._exit() para finalizar un programa:

import os
import sys
def child_process():
    print("Child process is running.")
    os._exit(0)
def main():
    print("Parent process is running.")
    try:
        pid = os.fork()
        if pid == 0:
            # Code in the child process
            child_process()
        else:
            # Code in the parent process
            print(f"Parent process is continuing with child process PID: {pid}")
    except OSError as e:
        print(f"Fork failed: {e}")
        sys.exit(1)
    print("Parent process is done.")
if __name__ == "__main__":
    main()

El código anterior generará lo siguiente:

¿Qué método debería utilizar para finalizar un programa en Python?

Python proporciona varios métodos para finalizar un programa. Sin embargo, la mayoría de estos métodos hacen lo mismo. Esto debería reducir la carga de la toma de decisiones si necesita agregar un mecanismo de salida a su programa cuando aprende Python.

En resumen, sys.exit() debería ser su método de referencia para finalizar un programa en Python. Genera una excepción SystemExit con un código de salida opcional.

Los métodos quit() y exit() son más apropiados cuando se utiliza Python REPL. Debes evitarlos en producción porque dependen del módulo site, que puede no estar siempre disponible. Rara vez necesitarás usar os._exit(), a menos que estés trabajando con código que bifurca procesos.