[Hikari-Python] Chapitre 07-01 Gestion des exceptions (erreurs et exceptions)

[Python] Chapitre 07-01 Erreurs et exceptions

Jusqu'à présent, j'ai écrit divers programmes. Pour exécuter le programme que vous avez écrit vous-même, suivez les étapes ci-dessous.

** [1] Création d'un programme ** Prenons, par exemple, un programme qui calcule les divisions.

La création d'un programme consiste à écrire du code à traiter selon la grammaire d'un programme tel que Python afin que l'ordinateur puisse traiter quelque chose. Je l'ai fait plusieurs fois.

print('Divisez a ÷ b.')
a = int(input('Entrez la valeur de a:'))
b = int(input('Entrez une valeur pour b:'))

print(a / b)

Bien que le code ci-dessus soit facile à lire pour les humains, il ne peut pas être traité sur un ordinateur tel quel. Pour être précis, le code ci-dessus ne peut pas être exécuté même s'il est traité par ** CPU (Central Processing Device) ** à l'intérieur de l'ordinateur. Le code dans cet état est parfois appelé ** code source **.

** [2] Traitement interprète ** Il doit être ** traduit ** avant que le code source puisse être exécuté. Spécifiez ** Python Interpreter ** à traduire. En utilisant l'interpréteur, vous pouvez le traduire dans un ** langage machine ** que le CPU peut comprendre. En fait, l'interprète est spécifié au chapitre 01. Nous allons jeter un coup d'oeil. Cliquez sur Modifier les configurations ... en haut à droite de Pycharm. image.png

J'ai spécifié la partie où se trouve l'interpréteur dans [interpréteur Python]. image.png

** [3] Exécuter ligne par ligne ** Le programme est exécuté ligne par ligne lors de la traduction avec l'interpréteur. S'il y a une erreur grammaticale pendant l'exécution du programme, l'erreur suivante sera affichée comme une erreur de syntaxe et la traduction par l'interpréteur sera arrêtée. ..

Traceback (most recent call last): File "C:/Users/***/Desktop/python/chap07/samp07-01-01.py", line 6, in a = inat (input ('Veuillez saisir la valeur de a:')) NameError: name 'inat' is not defined

S'il n'y a pas d'erreurs grammaticales, le programme sera exécuté et le processus se poursuivra.

Ce qui précède est le flux entre l'écriture du code du programme et son exécution.

Exception (division par 0)

J'ai mentionné précédemment que si vous exécutez le programme et qu'il n'y a pas d'erreurs de syntaxe, le programme sera exécuté, mais même si vous exécutez le programme en toute sécurité, des problèmes peuvent survenir à ce moment-là.

Par exemple, le programme précédent. Créez un fichier avec le nom de fichier samp07-01-01.py </ font> dans chap07 </ font> et entrez le code suivant S'il vous plait écrivez. Alors essayez-le.

samp07-01-01.py


print('Divisez a ÷ b.')
a = int(input('Entrez la valeur de a:'))
b = int(input('Entrez une valeur pour b:'))

print(a / b)

[Résultat de l'exécution] </ font> Divisez a ÷ b. Entrez une valeur de a: 10 Entrez une valeur pour b: 4 2.5

Je pense qu'il n'y a aucun problème avec le contenu du programme. D'ailleurs, cette fois, j'ai confirmé que la traduction par l'interprète avait réussi et que l'exécution était réussie.

Et si vous entrez ** 0 ** pour la valeur de ** b ** après l'exécution? Essayez à nouveau d'exécuter et saisissez ** 0 ** dans ** b **.

[Résultat de l'exécution] </ font> Divisez a ÷ b. Entrez une valeur de a: 10 Entrez une valeur pour b: 0 </ font> Traceback (most recent call last): File "C:/Users/***/Desktop/python/chap07/samp07-01-01.py", line 5, in print(a / b) ZeroDivisionError: division by zero

Ce qui s'est passé est ** "Erreur de division zéro: division par zéro" ** à la fin de l'erreur, ce qui signifie "J'essaye de diviser par 0 et j'obtiens une erreur". En fait, même dans le monde de l'arithmétique et des mathématiques, les valeurs ne peuvent pas être divisées par 0.

Désormais, la valeur ** 0 ** que vous avez saisie n'est pas l'erreur survenue lors de la traduction par l'interpréteur, mais l'erreur ** survenue une fois la traduction terminée avec succès **. En fait, il s'agit d'une entrée humaine de ** 0 ** depuis l'écran d'exécution au moment de l'exécution. Une erreur qui se produit au moment de l'exécution plutôt qu'une telle erreur grammaticale est appelée une ** Exception **. De plus, les erreurs grammaticales qui se produisent lors de la traduction par l'interpréteur sont appelées ** erreurs de syntaxe **.

En résumé, il y a des ** erreurs de syntaxe ** et des ** exceptions ** dans les erreurs. Au fait, c'est une exception, mais même si vous faites attention de ne pas entrer ** 0 ** comme valeur de ** b ** à partir de l'écran d'exécution au moment de l'exécution, les gens l'entreront, donc une exception comme celle-ci est Cela arrive toujours quelque part.

Exception (exception lorsqu'elle est spécifiée au-delà des éléments de la liste)

J'ai mentionné la division par 0 plus tôt, mais il y en a plus. Par exemple, lorsque vous spécifiez le nombre d'éléments dans une liste, vous obtiendrez une exception si vous spécifiez un numéro d'élément qui dépasse le nombre d'éléments de la liste. Créez un nouveau chap07 </ font> et créez un fichier avec le nom de fichier samp07-01-02.py </ font>. Ensuite, écrivez le code ci-dessous.

07-01-02.py


ls = [1, 3, 5, 7, 9]
print(ls)
i = int(input('Veuillez spécifier le numéro d'élément dans la liste ci-dessus:'))

print(ls[i])

[Résultat de l'exécution] </ font> [1, 3, 5, 7, 9] Veuillez spécifier le numéro d'élément dans la liste ci-dessus: 5 </ font> Traceback (most recent call last): File "C:/Users/***/Desktop/python/chap07/samp07-01-02.py", line 5, in print(ls[i]) IndexError: list index out of range

À la fin du message d'erreur se trouve ** "Erreur d'index: index de liste hors limites" **. Il s'agit d'un message d'erreur tel que "Spécification d'un index au-delà de la portée de la liste". Cette fois, les éléments de la liste ne doivent être que ** ls [0] à ls [4] **, mais comme ** ls [5] ** est spécifié, cela devient une ** exception **. Cette fois aussi, une exception se produit en raison d'une intervention humaine.

finalement

Cette fois, j'ai mentionné les exceptions et les erreurs de syntaxe comme types d'erreur. Des exemples d'exceptions incluent la division par 0 et la spécification en dehors des éléments de la liste. Les exceptions dues à une erreur humaine sont courantes. Peu importe combien vous dites «Soyez prudent» aux gens, des erreurs se produiront. Il est dangereux de laisser aux autres le soin d'éviter de commettre de telles erreurs.

Maintenant, je vais parler de la façon d'écrire un programme résistant aux erreurs pour éviter cette exception la prochaine fois.

Retournez à [Lien de la table des matières]

Recommended Posts