Python >> Tutoriel Python >  >> Python

Comment terminez-vous les scripts en Python ?

Programmer signifie donner des instructions à un ordinateur sur la façon d'effectuer une tâche. Ces instructions sont écrites à l'aide d'un langage de programmation. Une séquence organisée de telles instructions est appelée un script.

En tant que programmeur, votre travail principal consiste à écrire des scripts (c'est-à-dire des programmes). Cependant, vous devez également savoir comment les scripts peuvent se terminer. Dans cet article, nous allons passer en revue différentes façons dont un script Python peut se terminer. Il n'y a pas de connaissances préalables pour cet article, mais il est préférable que vous connaissiez les termes Python de base.

Si vous débutez dans la programmation ou envisagez de commencer à l'apprendre, Python est le meilleur moyen de commencer votre aventure de programmation. C'est un langage simple et intuitif, et le code est aussi compréhensible que du bon français.

Les scripts sont écrits pour effectuer une tâche; ils sont censés se terminer une fois la tâche terminée. Si un script ne se termine jamais, nous avons un sérieux problème. Par exemple, s'il existe un while infini boucle dans le script, le code ne se termine théoriquement jamais et peut nécessiter une interruption externe.

Il est important de noter qu'un tandis infini boucle peut être créée exprès. Un script peut être écrit pour créer un service censé fonctionner indéfiniment. Dans ce cas, la boucle infinie est intentionnelle et cela ne pose aucun problème.

La fin d'un script Python peut être frustrante ou satisfaisante, selon le résultat. Si le script fait ce qu'il est censé faire, alors c'est génial. D'un autre côté, s'il finit par lever une exception ou lancer une erreur, alors nous ne serons pas très heureux.

5 façons de mettre fin aux scripts Python

Commençons par le cas le plus courant et le plus évident :un script se termine lorsqu'il n'y a plus de lignes à exécuter.

1. Toutes les lignes sont exécutées

Voici un script simple qui imprime les noms dans la liste, ainsi que le nombre de caractères qu'ils contiennent :

mylist = ["Jane", "John", "Ashley", "Matt"]

for name in mylist:
    print(name, len(name))

Sortie :

Jane 4
John 4
Ashley 6
Matt 4

Le script fait son travail et se termine. Nous sommes tous heureux.

Les scripts Python, ou les scripts de tout autre langage de programmation, peuvent effectuer un large éventail d'opérations. Dans de nombreux cas, nous ne pouvons pas vérifier visuellement les résultats. Par exemple, le travail d'un script peut être de lire des données à partir d'une base de données, d'effectuer un ensemble de transformations et d'écrire les données transformées dans une autre base de données.

Dans les scripts qui effectuent une série d'opérations, il est recommandé de conserver un fichier journal ou d'ajouter des instructions d'impression après chaque tâche individuelle. Il nous permet de faire un débogage simple en cas de problème. Nous pouvons également vérifier le fichier journal ou lire la sortie des instructions d'impression pour nous assurer que l'opération s'est déroulée avec succès.

2. Exception non détectée

Il faut généralement plusieurs itérations pour écrire un script qui s'exécute sans erreur; il est rare de réussir du premier coup. Ainsi, une façon courante dont un script se termine est une exception non interceptée; cela signifie qu'il y a une erreur dans le script.

Lors de l'écriture de scripts, nous pouvons penser à certains problèmes possibles et placer des blocs try-except dans le script pour les gérer. Ce sont les exceptions que nous sommes en mesure d'attraper. Les autres peuvent être considérés comme des exceptions non interceptées.

Considérez le code suivant :

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")

Sortie :

The length of Jane is 4
The length of John is 4
Traceback (most recent call last):
  File "", line 4, in 
TypeError: object of type 'int' has no len()

Le code imprime la longueur de chaque élément de la liste. Il s'exécute sans problème jusqu'au troisième élément, qui est un entier. Puisque nous ne pouvons pas appliquer le len fonction à un entier, le script renvoie une erreur et se termine.

Nous pouvons faire continuer le script en ajoutant un bloc try-except.

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
    try:
        print(f"The length of {i} is {len(i)}")
    except TypeError:
        print(f"{i} does not have a length!")

Sortie :

The length of Jane is 4
The length of John is 4
2 does not have a length!
The length of Max is 3

Que fait ce bloc try-except ?

  • Il imprime la chaîne f qui inclut les valeurs et leurs longueurs.
  • Si l'exécution dans le bloc try renvoie une TypeError, elle est interceptée dans le bloc except.
  • Le script continue l'exécution.

Le script se termine toujours, mais sans erreur. Ce cas est un exemple de ce que nous avons expliqué dans la première section.

3. sys.exit()

Le sys module fait partie de la bibliothèque standard Python. Il fournit des paramètres et des fonctions spécifiques au système.

Une des fonctions du sys le module est exit , qui quitte simplement Python. Bien que le comportement de sortie soit le même, la sortie peut être légèrement différente selon l'environnement. Par exemple, le bloc de code suivant est exécuté dans l'IDE PyCharm :

import sys
number = 29

if number < 30:
    sys.exit()
else:
    print(number)

Il fournit cette sortie :

Process finished with exit code 0

Maintenant, exécutons le même code dans Jupyter Notebook :

import sys
number = 29

if number < 30:
    sys.exit()
else:
    print(number)

Voici le résultat :

An exception has occurred, use %tb to see the full traceback.

SystemExit

Le sys.exit La fonction accepte un argument facultatif qui peut être utilisé pour afficher un message d'erreur. La valeur par défaut est 0, ce qui indique la résiliation réussie ; toute valeur différente de zéro est une terminaison anormale.

Nous pouvons également passer un objet non entier comme argument optionnel :

import sys
number = 29

if number < 30:
    sys.exit("The number is less than 30.")
else:
    print(number)

Sortie :

An exception has occurred, use %tb to see the full traceback.

SystemExit: The number is less than 30.

Le sys.exit() la fonction lève le SystemExit exception, donc les fonctions de nettoyage utilisées dans la clause finale d'un bloc try-except-finally fonctionneront. En d'autres termes, nous pouvons intercepter l'exception et gérer les opérations ou tâches de nettoyage nécessaires.

4. exit() et quit()

Le exit() et quit() les fonctions sont intégrées à Python pour terminer un script. Ils peuvent être utilisés de manière interchangeable.

Le script suivant imprime les entiers compris entre 0 et 10. Si la valeur devient 3, il quitte Python :

for i in range(10):
   print(i)
   if i == 4:
       exit()

Sortie

0
1
2
3

Process finished with exit code 0

Remarque :Le exit() la fonction lève également une exception, mais elle n'est pas interceptée (contrairement à sys.exit() ). Par conséquent, il est préférable d'utiliser le sys.exit() fonction dans le code de production pour terminer les scripts Python.

5. Interruption externe

Une autre façon de terminer un script Python consiste à l'interrompre manuellement à l'aide du clavier. Ctrl + C sous Windows peut être utilisé pour terminer les scripts Python et Ctrl + Z sous Unix suspendra (gelera) l'exécution des scripts Python.

Si vous appuyez sur CTRL + C pendant qu'un script est en cours d'exécution dans la console, le script se termine et lève une exception.

Traceback (most recent call last):
  File "", line 2, in 
KeyboardInterrupt

Nous pouvons implémenter un bloc try-except dans le script pour faire une sortie du système en cas de KeyboardInterrupt exception. Considérez le script suivant qui imprime les nombres entiers dans la plage donnée.

for i in range(1000000):
   print(i)

Nous pouvons vouloir quitter Python si le script est terminé en utilisant Ctrl + C pendant son exécution. Le bloc de code suivant attrape le KeyboardInterrupt exception et effectue une sortie du système.

for i in range(1000000):
   try:
       print(i)
   except KeyboardInterrupt:
       print("Program terminated manually!")
       raise SystemExit

Sortie :

Program terminated manually!
Process finished with exit code 0

Nous avons couvert 5 façons différentes dont un script Python peut se terminer. Ils sont tous assez simples et faciles à mettre en œuvre.

Python est l'un des langages de programmation les plus appréciés. Commencez votre voyage Python avec notre piste Learn Programming with Python adaptée aux débutants. Il se compose de 5 cours Python interactifs dont la complexité augmente progressivement. De plus, tout est interactif; notre console en ligne vous permet de tester instantanément tout ce que vous apprenez. C'est un excellent moyen de s'entraîner et cela rend l'apprentissage plus amusant.

De plus, vous n'avez pas besoin d'installer ou de configurer quoi que ce soit sur votre ordinateur. Vous avez seulement besoin d'être disposé à apprendre; nous nous occupons du reste. N'attendez plus - commencez à apprendre Python dès aujourd'hui !