Plan du cours
• Partie 2 : Programmation en Python
• Introduction
• Types de langages
• Les variables
• Les entrées/sorties
• Les commentaires
• Les instructions
• Blocs et indentation
• Structures de données sous Python
• Les fonction et procédures
• Les modules
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Les modules dans Python
• Python possède plusieurs modules prêts à être utilisés par le programmeur.
• Les modules sont des codes (fonctions et variables) contenus dans des
fichiers qui peuvent être réutilisés afin d’arriver rapidement à votre objectif
sans pour autant les recoder (Evitez toujours de réinventez la roue,
cependant comprenez comme elle fonctionne).
• Pour utiliser les fonctions et variables d’un module, il faut l’importer.
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Importer un module avec import
• Prenons exemple du module Math. Ce dernier permet d’utiliser des
fonctions mathématiques.
• Le module n’est pas importé par défaut. C’est pour cela qu’il faut l’importer
afin d’utiliser ses fonctions.
• Pour utiliser les fonctions et variables d’un module, il faut l’importer.
#!/usr/bin/python3
import math
a=4
resultat = [Link](a) #appel de la fonction sqrt qui calcule la racine carrée
print(resultat) #affiche 2
• NB : L’instruction import math importe tout le module math. C’est à dire, elle
importe toutes les fonctions et variables appartenant au module math.
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Notion d’espace de noms
• Lors de l’importation du module math, un espace de nom dénommé “math”
se crée.
• L’instruction [Link](25) signifie que l’on appelle la fonction sqrt
contenue dans l’espace de noms “math”.
• Une autre fonction, définie par vous même dans l’espace de nom principal
ne sera pas en conflit avec la fonction sqrt appartenant à l’espace de noms
math.
#!/usr/bin/python3
import math
def sqrt(a):
return a+3
a=4
print([Link](a)) #affiche 2
print(sqrt(a)) #affiche 7
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Notion d’espace de noms (2)
#!/usr/bin/python3
import math
a=4
b = -1
• Dans l’espace de nom principal (que l’on utilise depuis le début), on trouve
les variables :
• a
• b
• En revanche, dans l’espace de nom math, on trouve les variables pi, la
fonction sqrt, etc.
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Notion d’espace de noms (3)
• Parfois, il arrive que l’on veuille changer le nom de l’espace de nom dans
lequel un module est importé pour expliciter davantage le nom ou pour
l’abréger.
Exemple :
#!/usr/bin/python3
import math as mathematiques
a=4
resultat = [Link](a)
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Une autre méthode d’importation de modules
#!/usr/bin/python3
from math import fabs
a = -5
resultat = fabs(a) #appel de la fonction fabs
print(resultat) #affiche 5
• Le code ci-dessus permet d’importer uniquement la fonction fabs (valeur
absolue) appartenant au module Math.
• Attention, la fonction fabs dans ce cas appartient à l’espace de nom
principal !
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Une autre méthode d’importation de modules (2)
#!/usr/bin/python3
from math import * # l’étoile signifie TOUT (ALL)
a = -5
resultat = fabs(a) #appel de la fonction fabs
print(resultat) #affiche 5
• Le code ci-dessus permet d’importer toutes les fonctions et variables du
module Math.
• Attention, toutes les fonctions et variables du module Math appartiennent
dorénavant à l’espace de nom principal.
Cette manière (from xx import *) d’importation est à éviter
car elle ne permet pas d’avoir une vision claire des méthodes
importées. Mieux vaut importer tout le module avec :
import module
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Quelle méthode d’importation utiliser ?
• La deuxième méthode d’importation (from xx import xx) a l’avantage
d’importer que les fonctions dont on a besoin dans notre programme et
surtout, elle permet d’économiser la saisie systématique du nom de module
avant chaque fonction ou variable.
• En revanche, l’inconvenient de cette deuxième méthode (from xx import
xx) réside dans l’importation de plusieurs modules. Imaginons ce cas de
figure :
#!/usr/bin/python3
from math import fabs
from mon_module import fabs
a=-1
resultat = fabs (a) # quelle fonction fabs a t-elle été appelée?
Si deux fonctions portant le même nom sont importées,
alors l’interpréteur conserve uniquement la dernière
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Le help dans Python ?
• Beaucoup de modules existent dans Python. Dans ces modules, beaucoup
de fonctions et variables sont prédéfinies pour être utilisées. Par quel
moyen peut-on connaitre les détails des modules ? => help("module") ou
help(“fonction”) :
1)Dans le terminal, on tape Python3 (ou Python) pour entrer dans
l’interpréteur Python
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Le help dans Python ? (2)
• 2) Nous pouvons par exemple afficher la documentation du module math avec
help("math") :
Pour avancer d’une ligne, taper la touche Entrée
Pour avancer d’une page, taper la touche Espace
Pour quitter la documentation, taper la touche q
Pour quitter l’interpréteur, taper la touche ctrl + d
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Créez vos propre modules !
• Comme expliqué plus haut, les modules sont des fichiers contenant du code
(fonctions + variables) que vous pouvez utiliser dans vos programmes.
• Vous pouvez créer vos propres modules, réutilisables par vous mêmes ou par
d’autres utilisateurs.
• Créons un fichier [Link] dans lequel nous définissons deux fonctions
carre() et cube().
#!/usr/bin/python3
def carre(valeur):
resultat = valeur**2
return resultat
def cube(valeur):
resultat = valeur**3
return resultat
fichier [Link]
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Créez vos propre modules ! (2)
• Le fichier [Link] est un module contenant deux fonctions que l’on peut
utiliser dans un autre fichier [Link] contenant notre programme principal.
Pour cela, il faudra importer le module puissance que l’on a défini. La manière de
l’importation dépendra de quelle fonction voulons-nous utiliser dans notre
programme principal.
Scénario 1
#!/usr/bin/python3
import puissance
a=4
resultat_carre = [Link](4)
resultat_cuble = [Link](4)
fichier [Link]
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Créez vos propre modules ! (3)
Scénario 2
#!/usr/bin/python3
from puissance import carre
a=4
resultat_carre = carre(4)
resultat_cuble = [Link](4) # ERREUR. puissance non reconnu !
fichier [Link]
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Créez vos propre modules ! (4)
Scénario 3
#!/usr/bin/python3
from puissance import carre as ca #on a donné un alias ca à la fonction carre
a=4
resultat_carre = ca(4)
fichier [Link]
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Tester un module dans lui même !
• Reprenons le code du module [Link]
#!/usr/bin/python3
def carre(valeur):
resultat = valeur**2
return resultat
def cube(valeur):
resultat = valeur**3
return resultat
fichier [Link]
• Ce module définit deux fonctions carre() et cube(). Il est intéressant de tester ces
deux fonctions. Nous pouvons rajouter la ligne print(carre(4)) à la fin du fichier.
Cependant, lors de l’importation de ce module dans un autre fichier, la ligne
print(carre(4)) sera exécutée or ce n’est pas l’objectif !
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Tester un module dans lui même ! (2)
• Objectif : Séparer les éléments du code qui doivent être exécutés lorsqu’on
exécute le module directement en tant que programme ou bien lorsqu’on l’importe
dans un autre fichier.
#!/usr/bin/python3 Si on execute le module [Link]
avec : python3 [Link] , nous aurons
import os
comme résultat :
def carre(valeur): carre de 4 : 16
resultat = valeur**2 cube de 4 : 64
return resultat
def cube(valeur): or, si l’on importe le module dans un autre
resultat = valeur**3 fichier pour pouvoir utiliser les deux fonctions,
return resultat
les instructions de test des fonctions ne seront
#test des fonctions
pas exécutées.
if __name__ == "__main__ " Ceci est possible grace à la variable __name__
print(" carre de 4 : ", carre(4)) qui est est égale à __main__ lorsque le module
print(" cube de 4 : ", cube(4))
est exécuté en tant que programme.
[Link]("pause")
fichier [Link]
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri
Modules
• Notion de Package (ou bibliothèque)
• Dans de gros projets, il y a souvent plusieurs modules. Ces derniers peuvent être
organisés dans des dossiers appelés Packages. Des packages peuvent aussi
contenir des sous-packages.
#!/usr/bin/python3
import [Link]
resultat_diametre = [Link]()
diametre() cote() resultat_cote = [Link]()
arc() perimetre()
[Link] [Link] module
[Link] package
Ecole Nationale Supérieure de Chimie de Kénitra - Pr. Anass Nouri