3 façons de terminer un programme en Python

Liens rapides

Savoir comment mettre fin à un programme est important et peut être utile dans divers scénarios. Par exemple, si vous créez un jeu simple, vous pouvez quitter sur une entrée spécifique de l’utilisateur ou lorsqu’une certaine condition est remplie. Découvrez les différences entre les trois manières d’arrêter un programme Python.

1. Utiliser quit() ou exit()

L’un des moyens les plus simples de terminer un programme Python consiste à utiliser l’une des méthodes intégrées, quit() ou exit(). Lorsque vous appelez quit() ou exit(), le programme se termine.

Les fonctions quit() et exit() font exactement la même chose, c’est juste une question de préférence personnelle que vous utilisez.

Voici comment utiliser la fonction quit() pour terminer un programme Python :

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

L’exemple de programme ci-dessus imprimera les entiers de 0 à 8 sur la console. Une fois que num est 9, le programme se termine. Vous pouvez également utiliser la commande quit() pour quitter l’environnement de développement et d’apprentissage intégré Python (IDLE), qui vous permet d’exécuter des scripts Python de manière interactive.

Notez que quit() et exit() dépendent du module site, vous ne devez donc pas les utiliser dans des environnements de production. La méthode suivante, sys.exit(), est une meilleure option.

2. Utilisation de sys.exit()

Lorsque vous appelez sys.exit() dans votre programme, Python déclenche une exception SystemExit. Il accepte un argument facultatif pour spécifier un code de sortie entier (0 par défaut). Vous pouvez également transmettre un objet qui entraînera un code de sortie de 1 et imprimera la valeur de chaîne de l’objet sur l’erreur standard.

 import sys 

for num in range(10):
    if num == 5:
        sys.exit("You exited the program")
    print(num)

Le résultat du programme sera le suivant :

Comme les méthodes quit et exit, sys.exit() déclenche également une exception SystemExit. Cela signifie que vous pouvez appeler sys.exit() ou augmenter SystemExit(). Les deux acceptent un argument facultatif.

Vous devriez en apprendre davantage sur les fonctions Python les plus importantes si vous ne comprenez pas comment fonctionne le code ci-dessus.

3. Utilisation de os._exit()

La troisième façon de quitter un programme est la méthode spéciale os._exit(). Vous pouvez lui transmettre un argument facultatif pour spécifier un code d’état de sortie. os._exit() provient du module os et termine le processus immédiatement sans effectuer les activités de nettoyage normales qui se produisent lorsqu’un programme Python se termine.

Étant donné que cette fonction se termine sans effectuer un nettoyage normal, vous ne devez l’utiliser que dans des cas particuliers. Selon le Documentation Pythonun bon exemple est celui d’un processus enfant après un fork (un nouveau processus créé à l’aide de os.fork()).

Voici un exemple d’utilisation de la fonction os._exit() pour terminer un programme :

 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:
            
            child_process()
        else:
            
            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()

Le code ci-dessus affichera ce qui suit :

Quelle méthode devriez-vous utiliser pour terminer un programme en Python ?

Python propose différentes méthodes pour terminer un programme. Cependant, la plupart de ces méthodes font la même chose. Cela devrait réduire le fardeau de la prise de décision si vous devez ajouter un mécanisme de sortie à votre programme lors de l’apprentissage de Python.

En résumé, sys.exit() devrait être votre méthode privilégiée pour terminer un programme en Python. Il déclenche une exception SystemExit avec un code de sortie facultatif.

Les méthodes quit() et exit() sont plus appropriées lors de l’utilisation de Python REPL. Vous devez les éviter en production car ils dépendent du module du site, qui n’est pas toujours disponible. Vous devriez rarement avoir besoin d’utiliser os._exit(), sauf si vous travaillez avec du code qui bifurque les processus.