0% ont trouvé ce document utile (0 vote)
8 vues15 pages

Ch4 Python

Le chapitre 4 traite des modules et des exceptions en Python. Il définit les modules comme des fichiers .py contenant des sous-programmes et explique comment les importer, ainsi que la gestion des exceptions qui surviennent durant l'exécution du code. Des exemples illustrent l'utilisation des blocs try, except, else et finally pour gérer les erreurs de manière efficace.

Transféré par

nouhailahadfaoui55
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues15 pages

Ch4 Python

Le chapitre 4 traite des modules et des exceptions en Python. Il définit les modules comme des fichiers .py contenant des sous-programmes et explique comment les importer, ainsi que la gestion des exceptions qui surviennent durant l'exécution du code. Des exemples illustrent l'utilisation des blocs try, except, else et finally pour gérer les erreurs de manière efficace.

Transféré par

nouhailahadfaoui55
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 4 :

Les modules +
Les exceptions
Les modules
Introduction
Définition :
▪ Un module est un fichier contenant des sous-programmes regroupés de façon
cohérente
▪ Le nom du fichier aura comme suffixe .py
Structure d’un projet:
Plusieurs modules de fonctions et un module particulier, dit “main”, où l’on définit
les variables du projet et où l’on utilise les fonctions des différents modules.

Trois formats pour importer


▪ from NomDuModule import *
▪ from NomDuModule import uneFonction
▪ import NomDuModule

00:17 2
Les modules
import …
import nomModule
▪ Importe tout le contenu du fichier [Link]
▪ Pour faire référence à quelque chose dans le fichier il faut ajouter le nom du
module avant le nom de l'entité utilisée.

Exemple :
import fib
[Link](n)
fib.fib_rec(n)
print([Link](n))

Attention tout le contenu du module sera chargé en mémoire.

00:17 3
Les modules
from … import *
from nomModule import *
▪Tout le contenu du fichier [Link] est importé et chargé en mémoire
▪Tout le module est dans le namespace courant, il est donc inutile de faire
préfixé toutes les entités présentes dans le fichier par le nom du module

Exemple:
from fib import *
fib(n)
fib_rec(n)

00:17 4
Les modules
from … import …
from nomModule import item
▪ Seul l'élément item est importé du fichier [Link].
▪Comme dans le cas précédent il n'est pas nécessaire de faire préfixer le nom
de cet item par le nom du module
▪ Attention à l'écrasement d'une entité de même nom déjà
▪présente dans le namespace courant.

Exemple :
from fib import fib
fib(n)

00:17 5
Les modules
Exemple

# le module exemple
def doubler(x):
return 2*x
def tripler(x):
return 3*x

from exemple import *


print(tripler(12))

from exemple import doubler


print(doubler(12))

import exemple

00:17 print([Link](12)) 6
Les exceptions
Définition

▪ Les erreurs détectées durant l’exécution sont appelées des exceptions. Même si
une instruction ou une expression est syntaxiquement correcte, elle peut générer
une erreur lors de son exécution.
▪ Python lève donc des exceptions quand il trouve une erreur, soit dans le code (une
erreur de syntaxe, par exemple), soit dans l'opération que vous lui demandez de
faire.

# Exemple classique : test d'une division par zéro


>>> variable = 1/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: int division or modulo by zer

▪ ZeroDivisionError: le type de l'exception ;


▪ int division or modulo by zero: le message qu'envoie Python pour
vous aider à comprendre l'erreur qui vient de se produire.
00:17 7
Les exceptions
Forme minimale du bloc try
On va parler ici de bloc try. Nous allons en effet mettre les instructions que nous
souhaitons tester dans un premier bloc et les instructions à exécuter en cas d'erreur
dans un autre bloc

try:
# Bloc à essayer
except:
# Bloc qui sera exécuté en cas d'erreur

Dans l'ordre, nous trouvons :


▪ Le mot-clé try suivi des deux points « : » (try signifie « essayer » en anglais).
• Le bloc d'instructions à essayer.
▪ Le mot-clé except suivi, une fois encore, des deux points « : ». Il se trouve au
même niveau d'indentation que le try.
• Le bloc d'instructions qui sera exécuté si une erreur est trouvée dans le
premier bloc.

00:17 8
Les exceptions
Forme minimale du bloc try
Exemple:
Dans cet exemple, on demande à l'utilisateur de saisir l'année et on essaye de
convertir l'année en un entier

annee = input() # On demande à l'utilisateur de saisir l'année


annee = int(annee) # On essaye de convertir l'année en un entier

annee = input()
try: # On essaye de convertir l'année en entier
annee = int(annee)
except:
print("Erreur lors de la conversion de l'année.")

Vous pouvez tester ce code en précisant plusieurs valeurs différentes pour la


variable annee, comme « 2010 » ou « annee2010 ».

00:17 9
Les exceptions
Forme plus complète

▪ la forme minimale est à éviter pour plusieurs raisons.


▪ D'abord, elle ne différencie pas les exceptions qui pourront être levées dans le
bloc try.
▪ Dans l'exemple précédent, on ne pense qu'à un type d'exceptions susceptible d'être
levé : le type ValueError.
▪ Autre exemple:
try:
resultat = numerateur / denominateur
except:
print("Une erreur est survenue... laquelle ?")

• NameError : l'une des variables numerateur ou denominateur n'a pas été définie .
• TypeError : l'une des variables numerateur ou denominateur ne peut diviser ou
être divisée
• ZeroDivisionError : encore elle ! Si denominateur vaut 0, cette exception sera
00:17
levée. 10
Les exceptions
Forme plus complète

Remarque: Tout se joue sur la ligne du except. Entre ce mot-clé et les deux points, vous
pouvez préciser le type de l'exception que vous souhaitez traiter.

try:
resultat = numerateur / denominateur
except NameError:
print("La variable numerateur ou denominateur n'a pas été
définie.")

Ce code ne traite que le cas où une exception NameError est levée. On peut
intercepter les autres types d'exceptions en créant d'autres blocs except à la suite :

try:
resultat = numerateur / denominateur
except NameError:
print("La variable numerateur ou denominateur n'a pas été
définie.")
except TypeError:
print("La variable numerateur ou denominateur possède un
type incompatible avec la division.")
except ZeroDivisionError:
00:17 11
print("La variable denominateur est égale à 0.")
Les exceptions
Forme plus complète

On peut capturer l'exception et afficher son message grâce au mot-clé as qu’on a déjà vu
dans un autre contexte (si si, rappelez-vous de l'importation de modules).

try:
# Bloc de test
except type_de_l_exception as exception_retournee:
print("Voici l'erreur :", exception_retournee)

Dans ce cas, une variable exception_retournee est créée par Python si une exception
du type précisé est levée dans le bloc try.

00:17 12
Les exceptions
Les mots-clés else et finally

Ce sont deux mots-clés qui vont nous permettre de construire un bloc try plus complet.
▪ Le mot-clé else
Dans un bloc try, else va permettre d'exécuter une action si aucune erreur ne
survient dans le bloc (c-à-d aucune exception n'a été lancée dans le try).

try:
resultat = numerateur / denominateur
except NameError:
print("La variable numerateur ou denominateur n'a pas été
définie.")
except TypeError:
print("La variable numerateur ou denominateur possède un
type incompatible avec la division.")
except ZeroDivisionError:
print("La variable denominateur est égale à 0.")
else:
print("Le résultat obtenu est", resultat)
00:17 13
Les exceptions
Les mots-clés else et finally
▪ Le mot-clé finally
finally permet d'exécuter du code après un bloc try, quelle que soit le résultat de
l'exécution dudit bloc.

try:
# Test d'instruction(s)
except TypeDInstruction:
# Traitement en cas d'erreur
finally:
# Instruction(s) exécutée(s) qu'il y ait eu des erreurs ou non

Le bloc finally est exécuté dans tous les cas de figures. Quand bien même Python
trouverait une instruction return dans votre bloc except par exemple, il exécutera
le bloc finally.

00:17 14
Les exceptions
Les mots-clés else et finally
▪ Exemple:
def divide(x,y):
try:
result = x / y
except ZeroDivisionError:
print("division by zero!")
else:
print("result is", result)
finally:
print ("executing finally clause")

>>> divide(1,3)
result is 0.3333333333333333
executing finally clause
>>> divide(1,0)
division by zero!
executing finally clause
00:17 15

Vous aimerez peut-être aussi