Computing">
Introduction à la programmation Python
Introduction à la programmation Python
Définition
Python est un langage de programmation semi-interprété, haut niveau, et polyvalent. Il est
connu pour sa syntaxe simple et lisible, ce qui le rend accessible aux débutants tout en étant
puissant pour les développeurs expérimentés.
I Historique de Python
1980s : Création par Guido van Rossum au CWI (Pays-Bas) pour combler les lacunes des
langages ABC et C.
I Historique de Python
1980s : Création par Guido van Rossum au CWI (Pays-Bas) pour combler les lacunes des
langages ABC et C.
1991 : Première version publique (Python 0.9.0) incluant les structures comme les classes,
les fonctions, et les exceptions.
I Historique de Python
1980s : Création par Guido van Rossum au CWI (Pays-Bas) pour combler les lacunes des
langages ABC et C.
1991 : Première version publique (Python 0.9.0) incluant les structures comme les classes,
les fonctions, et les exceptions.
2000 : Python 2.0 introduit la gestion automatique de la mémoire et la compréhension des
listes.
I Historique de Python
1980s : Création par Guido van Rossum au CWI (Pays-Bas) pour combler les lacunes des
langages ABC et C.
1991 : Première version publique (Python 0.9.0) incluant les structures comme les classes,
les fonctions, et les exceptions.
2000 : Python 2.0 introduit la gestion automatique de la mémoire et la compréhension des
listes.
2008 : Lancement de Python 3.0 pour améliorer la lisibilité et la cohérence du langage.
I Historique de Python
1980s : Création par Guido van Rossum au CWI (Pays-Bas) pour combler les lacunes des
langages ABC et C.
1991 : Première version publique (Python 0.9.0) incluant les structures comme les classes,
les fonctions, et les exceptions.
2000 : Python 2.0 introduit la gestion automatique de la mémoire et la compréhension des
listes.
2008 : Lancement de Python 3.0 pour améliorer la lisibilité et la cohérence du langage.
2010s : Python devient l’un des langages les plus populaires, largement utilisé en développe-
ment web, science des données, IA, etc.
I Historique de Python
1980s : Création par Guido van Rossum au CWI (Pays-Bas) pour combler les lacunes des
langages ABC et C.
1991 : Première version publique (Python 0.9.0) incluant les structures comme les classes,
les fonctions, et les exceptions.
2000 : Python 2.0 introduit la gestion automatique de la mémoire et la compréhension des
listes.
2008 : Lancement de Python 3.0 pour améliorer la lisibilité et la cohérence du langage.
2010s : Python devient l’un des langages les plus populaires, largement utilisé en développe-
ment web, science des données, IA, etc.
2020 : Fin du support de Python 2.x, marquant la transition complète vers Python 3.x.
T Langage semi-interprété
T Langage semi-interprété
T Son utilisation est parfaitement adaptée à l’intégration de composants écrit dans d’autres
langages tels que C, C++ ou Java
T Principe
© Ecrire une suite d’instruction dans un fichier texte [Link].
print (’hello word’)
© Exécuter python [Link]
T Principe
© Ecrire une suite d’instruction dans un fichier texte [Link].
print (’hello word’)
© Exécuter python [Link]
T Déroulement
© L’interpréteur python compile [Link] en un bytecode (indépendant du système)
© Le bytecode est exécuté par une Machine Virtuelle
Définition
Une variable est une zone de la mémoire de l’ordinateur où une valeur est stockée. Pour
le programmeur, cette variable est identifiée par un nom, tandis que pour l’ordinateur, elle
correspond à une adresse, c’est-à-dire une localisation spécifique dans la mémoire.
Définition
Une variable est une zone de la mémoire de l’ordinateur où une valeur est stockée. Pour
le programmeur, cette variable est identifiée par un nom, tandis que pour l’ordinateur, elle
correspond à une adresse, c’est-à-dire une localisation spécifique dans la mémoire.
Définition
Une variable est une zone de la mémoire de l’ordinateur où une valeur est stockée. Pour
le programmeur, cette variable est identifiée par un nom, tandis que pour l’ordinateur, elle
correspond à une adresse, c’est-à-dire une localisation spécifique dans la mémoire.
Affectation directe
F x=3
 définit la variable nommée x et lui assigne la valeur 3, type entier (int)
Exemple
F x=range(10)
 Crée une séquence de valeurs entières allant de 0 à 9
F x=range(2,10)
 Crée une séquence de valeurs entières allant de 2 à 9
F x=range(1, 10, 2)
 Crée une séquence de valeurs entières allant de 1 à 9 avec un pas de 2. Il renvoie
alors 1, 3, 5, 7 et 9
October 24, 2024 8 / 164
Les variables
Pour afficher les valeurs générées, on peut utiliser la fonction list() ou la fonction tuple() telles
que :
Exemple
x=range(10)
x=print(list(x))
 renvoie une liste: valeurs entre crochets [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
x=print(tuple(x))
 renvoie un tuple: valeurs entre parenthèses (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
Nous reviendrons plus en détails sur la définition des objets liste ou tuple qui correspondent
chacun à un objet particulier dans Python
Définition
Le type d’une variable définit sa nature. Les trois types principaux dont nous aurons besoin
dans un premier temps sont les entiers (integer ou int), les nombres décimaux (floats), et les
chaînes de caractères (string ou str).
Bien sûr, il existe de nombreux autres types (par exemple, les booléens, les nombres complexes,
etc.)
Dans l’exemple précédent, la variable x a été utilisée pour stocker des entiers, mais elle peut
également contenir des floats, des chaînes de caractères, ou d’autres types de variables que nous
verrons par la suite :
Remarques
Python détecte automatiquement certains types de variables, comme les entiers et les floats.
Cependant, pour les chaînes de caractères, il est nécessaire de les encadrer de guillemets (simples,
doubles, ou même triples) pour indiquer à Python où commence et se termine la chaîne.
Dans l’interpréteur, le contenu d’une chaîne de caractères s’affiche toujours entre guillemets
simples, peu importe le type de guillemets utilisé pour la définir.
Il existe aussi des variables de type booléen, qui ne peuvent prendre que deux valeurs : Vrai ou
Faux. En Python, on utilise les mots réservés True et False pour représenter ces valeurs:
Il existe aussi des variables de type booléen, qui ne peuvent prendre que deux valeurs : Vrai ou
Faux. En Python, on utilise les mots réservés True et False pour représenter ces valeurs:
Exemple
F o Var1 = True
F o Var12=False
F o Var1
True
F o Var2
False
F En Python, les noms de variables peuvent inclure des lettres minuscules (a à z), des lettres
majuscules (A à Z), des chiffres (0 à 9), ou le caractère souligné (_). Les espaces ne sont
pas autorisés dans les noms de variables
F En Python, les noms de variables peuvent inclure des lettres minuscules (a à z), des lettres
majuscules (A à Z), des chiffres (0 à 9), ou le caractère souligné (_). Les espaces ne sont
pas autorisés dans les noms de variables
F De plus, un nom de variable ne doit pas commencer par un chiffre, et il est déconseillé de
le faire commencer par le caractère "_" (sauf exceptions très spécifiques).
F En Python, les noms de variables peuvent inclure des lettres minuscules (a à z), des lettres
majuscules (A à Z), des chiffres (0 à 9), ou le caractère souligné (_). Les espaces ne sont
pas autorisés dans les noms de variables
F De plus, un nom de variable ne doit pas commencer par un chiffre, et il est déconseillé de
le faire commencer par le caractère "_" (sauf exceptions très spécifiques).
F Il est également impératif d’éviter d’utiliser des mots réservés par Python comme noms de
variables (par exemple : print, range, for, etc.).
F En Python, les noms de variables peuvent inclure des lettres minuscules (a à z), des lettres
majuscules (A à Z), des chiffres (0 à 9), ou le caractère souligné (_). Les espaces ne sont
pas autorisés dans les noms de variables
F De plus, un nom de variable ne doit pas commencer par un chiffre, et il est déconseillé de
le faire commencer par le caractère "_" (sauf exceptions très spécifiques).
F Il est également impératif d’éviter d’utiliser des mots réservés par Python comme noms de
variables (par exemple : print, range, for, etc.).
F Enfin, Python est sensible à la casse, ce qui signifie que les variables VAR, var et VaR sont
considérées comme distinctes.
Exemple
F o 3**4
81
F o pow(3,4)
81
Exemple
F o 9// 4
2
F o9%4
1
Exemple
F o 9// 4
2
F o9%4
1
 Les symboles +, -, *, /, **, // , pow() et % sont appelés opérateurs, car ils réalisent des
opérations sur les variables.
 Les opérateurs ’-=’, ’*=’ et ’/=’ se comportent de manière similaire pour la soustraction, la
multiplication et la division.
October 24, 2024 18 / 164
Les variables: Opérations
Z Opérateurs booléens
 Les opérateurs booléens sont tous les opérateurs qui retournent vrai ou faux.
Z Opérateurs booléens
 Les opérateurs booléens sont tous les opérateurs qui retournent vrai ou faux.
Z Opérations illicites
 Attention à ne pas faire d’opération illicite car vous obtiendriez un message d’erreur:
Exemple
F o "Hello"*1.5
Traceback (most recent call last): File "<stdin>", line 1, in <module>
TypeError : can’t multiply sequence by non-int of type ’float’
F o "Hello"+2
Traceback (most recent call last): File "<stdin>", line 1, in <module>
TypeError : can only concatenate str (not "int" ) to str
 Python fournit des informations dans ses messages d’erreur. Dans le deuxième exemple, il
précise qu’une chaîne de caractères (str) est attendue, et non un entier (int).
Z Conversion de types
 En programmation, il est fréquent de devoir convertir des types, par exemple passer d’un
type numérique à une chaîne de caractères ou inversement. En Python, cela se fait facilement à
l’aide des fonctions int(), float(), et str().
Z Conversion de types
 En programmation, il est fréquent de devoir convertir des types, par exemple passer d’un
type numérique à une chaîne de caractères ou inversement. En Python, cela se fait facilement à
l’aide des fonctions int(), float(), et str().
Exemple
1 Soit x=’4’ une variable en caractère définie par 4. Pour la convertir en:
F type numérique (entier), on utilise la fonction int(): x=int(x)
F un nombre réel, on utilise la fonction float(): x=float(x)
2 Soit y une variable numérique de type entier ou réel. Pour la convertir en type caractère,
on utilise la fonction str(): y=str(y)
 La fonction print() affiche l’argument qui lui est passé entre parenthèses, suivi d’un retour à
la ligne. Ce retour à la ligne est ajouté par défaut. Cependant, si l’on souhaite éviter cet ajout,
on peut utiliser l’argument nommé end pour le modifier.
 La fonction print() affiche l’argument qui lui est passé entre parenthèses, suivi d’un retour à
la ligne. Ce retour à la ligne est ajouté par défaut. Cependant, si l’on souhaite éviter cet ajout,
on peut utiliser l’argument nommé end pour le modifier.
Exemple:
F o print( "Hello World")
Hello world!
 Une autre façon de s’en rendre compte est d’utiliser deux fonctions print() successivement.
Dans le code suivant, le caractère point-virgule « ; » permet de séparer plusieurs instructions
Python sur une seule ligne.
 Une autre façon de s’en rendre compte est d’utiliser deux fonctions print() successivement.
Dans le code suivant, le caractère point-virgule « ; » permet de séparer plusieurs instructions
Python sur une seule ligne.
Exemple:
F o print( "Hello") ; print( "World!")
Hello
World!
 La fonction print() peut aussi afficher le contenu d’une variable, quel que soit son type. Par
exemple, pour un entier :
Exemple:
F o Var= 4
F o print(var)
4
 La fonction print() peut aussi afficher le contenu d’une variable, quel que soit son type. Par
exemple, pour un entier :
Exemple:
F o Var= 4
F o print(var)
4
 Il est aussi possible d’afficher le contenu de plusieurs variables, quel que soit leur type, en les
séparant par des virgules.
Exemple:
F o Var= 20; Nom= "Mohammed"
F o print(Nom, "a", Var, "ans")
Mohammed a 20 ans
October 24, 2024 27 / 164
Affichage : Fonction print()
Z Fonction print()
Remarque
Pour afficher plusieurs éléments de texte sur une seule ligne, nous avons utilisé le séparateur ’,’
entre les différents éléments. Notez que Python ajoute automatiquement un espace chaque fois
lorsqu’on utilise le séparateur ’,’ pour séparer les variables dans print.
Définition
L’écriture formatée est un mécanisme qui permet d’afficher des variables avec un format
spécifique, tel que l’alignement à gauche ou à droite, ou la spécification du nombre de décimales
pour les floats. Elle est essentielle pour créer des fichiers bien organisés en colonnes soignées.
Définition
L’écriture formatée est un mécanisme qui permet d’afficher des variables avec un format
spécifique, tel que l’alignement à gauche ou à droite, ou la spécification du nombre de décimales
pour les floats. Elle est essentielle pour créer des fichiers bien organisés en colonnes soignées.
 En Python, pour formater une chaîne de caractères avec des variables, vous pouvez utiliser
l’opérateur %, la méthode format(), ou les f-strings (recommandée pour Python 3.6 et plus).
Z Utilisation de l’opérateur % :
Exemple:
F o X= 2.4567
F o Y= 3.14587
F o print(" la valeur de X est %4.2f et la valeur de Y est %5.3f" % (X,Y))
la valeur de x est 2.46 et la valeur de y est 3.146
Z Utilisation de l’opérateur % :
Exemple:
F o X= 2.4567
F o Y= 3.14587
F o print(" la valeur de X est %4.2f et la valeur de Y est %5.3f" % (X,Y))
la valeur de x est 2.46 et la valeur de y est 3.146
Exemple:
F o print("la valeur de x est {:.2f} et la valeur de y est {:.3f}". format(x, y))
la valeur de x est 2.46 et la valeur de y est 3.146
Exemple:
F o Var= 20; Nom= "Mohammed"
F o print(f"{Nom} a {Var} ans ")
Mohammed a 20 ans
Exemple:
F o Var= 20; Nom= "Mohammed"
F o print(f"{Nom} a {Var} ans ")
Mohammed a 20 ans
 Il suffit de passer un nom de variable au sein de chaque couple d’accolades et Python les
remplace par leur contenu. La syntaxe apparait plus lisible que l’équivalent vu précédemment:
o print(Nom, "a", Var, "ans")
Mohammed a 20 ans
October 24, 2024 31 / 164
Affichage : Écriture formatée
F Spécification de format
 Les f-strings permettent de remplacer des variables au sein d’une chaîne de caractères. On
peut également spécifier le format de leur affichage en ajoutant l’ expression ’ :.xf ’ après le nom
de la variable dans les accolades avec:
F Spécification de format
 Les f-strings permettent de remplacer des variables au sein d’une chaîne de caractères. On
peut également spécifier le format de leur affichage en ajoutant l’ expression ’ :.xf ’ après le nom
de la variable dans les accolades avec:
les deux-points ’:’ indiquent que ce qui suit va spécifier le format dans lequel on veut afficher
la variable
F Spécification de format
 Les f-strings permettent de remplacer des variables au sein d’une chaîne de caractères. On
peut également spécifier le format de leur affichage en ajoutant l’ expression ’ :.xf ’ après le nom
de la variable dans les accolades avec:
les deux-points ’:’ indiquent que ce qui suit va spécifier le format dans lequel on veut afficher
la variable
’.xf’ indique le format : la lettre f indique qu’on souhaite afficher la variable sous forme d’un
float, les caractères ’.x’ indiquent la précision voulue, soit ici x chiffres après la virgule.
F Spécification de format
Exemple
F o ValP= 3.14159265358
F Spécification de format
Enfin, vous pouvez spécifier le nombre de caractères sur lesquels un résultat doit être affiché,
ainsi que l’alignement (gauche, droite) ou centrer le texte.
 Notez que:
> spécifie un alignement à droite,
< spécifie un alignement à gauche
^ spécifie un alignement centré.
Il est également possible d’indiquer le caractère qui servira de remplissage lors des aligne-
ments (l’espace est le caractère par défaut).
Dans l’exemple suivant, le caractère ; est utilisé pour séparer plusieurs instructions sur une seule
ligne.
F Spécification de format
Exemple
F o print(f"{10:*^ 6d}"); print(f"{1000:*^ 6d}")
**10**
*1000*
F o print(f"{10:0>6d}"); print(f"{1000:0>6d}")
000010
001000
# commentaire # Loop
instruction(bloc1) i=0
statement arguments: while ( i < 10):
instruction(bloc2) print ("Hello!")
instruction(bloc2) i=i+1
# commentaire # Loop
instruction(bloc1) i=0
statement arguments: while ( i < 10):
instruction(bloc2) print ("Hello!")
instruction(bloc2) i=i+1
Mots clefs
if (premier test),
Exemple
x = int(input("Donnez un nombre: "))
if x > 0:
print ("x est positif" )
elif x<0:
print ("x est négatif" )
else:
print ("x est nul" )
Remarque
La clause elif peut être utilisée autant de fois qu’il y a de conditions alternatives entre la clause
initiale if et la clause finale else. Toutefois, l’utilisation de la clause elif n’est pas obligatoire pour
traduire les conditions alternatives. On peut simplement utiliser la clause if à la place.
F Exercices d’application:
1 Écrire un programme qui demande le nom de l’utilisateur (avec la fonction ’input()’) et qui
répond en donnant le nombre de lettres du nom donné.
2 Écrire un programme qui demande d’entrer un mot et qui détermine s’il contient une voyelle
ou pas. Tester si une chaîne est incluse dans une autre se fait comme ceci :if ’a’ in "abcde":...
October 24, 2024 42 / 164
Les branchements
F Exercices d’application:
∂ Écrire un programme qui demande le nom de l’utilisateur (avec la fonction ’input()’) et qui
répond en donnant le nombre de lettres du nom donné. Utiliser l’opérateur %
Entrez votre nom: Toto
Bonjour Toto , votre nom fait 4 lettre(s).
F Exercices d’application:
∂ Écrire un programme qui demande le nom de l’utilisateur (avec la fonction ’input()’) et qui
répond en donnant le nombre de lettres du nom donné. Utiliser l’opérateur %
Entrez votre nom: Toto
Bonjour Toto , votre nom fait 4 lettre(s).
name = input("Entrez votre nom: ")
print ("Bonjour %s, votre nom comporte %i lettre(s)." % (name , len (name)))
F Exercices d’application:
∑ Écrire un programme qui demande d’entrer un mot et qui détermine s’il contient une
voyelle ou pas. Tester si une chaîne est incluse dans une autre se fait comme ceci : if ’a’ in
"abcde":...)
Entrez un mot: voiture
Le mot contient au moins une voyelle
Entrez un mot: zdrtsp
Le mot ne contient pas de voyelle
F Exercices d’application:
∑ Écrire un programme qui demande d’entrer un mot et qui détermine s’il contient une
voyelle ou pas. Tester si une chaîne est incluse dans une autre se fait comme ceci : if ’a’ in
"abcde":...)
Entrez un mot: voiture
Le mot contient au moins une voyelle
Entrez un mot: zdrtsp
Le mot ne contient pas de voyelle
word = input ("Entrez un mot: " )
if ’a’ in word or ’e’ in word or ’i’ in word or ’o’ in word or ’u’ in word or ’y’ in
word :
print ("Le mot contient au moins une voyelle" )
else:
print ("Le mot ne contient pas de voyelle") )
Exemple 1: Exemple 2:
for i in range(1,11): for i in "Hello world"
print (i) print (i)
Exemple 1: Exemple 2:
for i in range(1,11): for i in "Hello world"
print (i) print (i)
Les boucles while permettent de continuer la boucle tant que le test est vrai. Il ne s’agit donc
pas forcément d’itérer mais, le plus souvent, de chercher quelque chose dans une itérable ou de
faire des boucles infinies.
Syntaxe
Initialisation de la variable d’incrémentation
while condition :
bloc instructions
incrémentation
Les boucles while permettent de continuer la boucle tant que le test est vrai. Il ne s’agit donc
pas forcément d’itérer mais, le plus souvent, de chercher quelque chose dans une itérable ou de
faire des boucles infinies.
Syntaxe Exemple
Initialisation de la variable d’incrémentation x = 1 # Initialisation de la variable x
while condition : while x <10:
bloc instructions print (’La valeur de x est ’, x )
incrémentation x = x+1 # Incrémentation de la variable
x (or x+=1)
Les mots réservés break et continue sont utilisés pour modifier le comportement d’une boucle
« for...in » ou d’une boucle « while... »:
L’instruction break permet d’arrêter l’évaluation de la boucle et l’exécution des instructions
pour sortir prématurément de la boucle même la condition principale définissant la boucle
reste encore vraie.
L’instruction continue permet de suspendre l’exécution des instructions lorsque la condition
principale est vérifiée. Les exemple ci-dessous sont des illustrations.
2 Écrire un programme qui demande un nombre ’n’ et qui calcule la somme des carrés de 1 à
’n’.
4 Écrire un programme qui affiche tous les nombres premiers entre 2 et le nombre entré.
Entrez un nombre: 2
Hello World!
Hello World!
Entrez un nombre: 2
Hello World!
Hello World!
∑ Écrire un programme qui demande un nombre ’n’ et qui calcule la somme des carrés de 1 à
’n’.
Donnez un nombre: 10
La somme des carrés entre 1 et 10 est 385.
∑ Écrire un programme qui demande un nombre ’n’ et qui calcule la somme des carrés de 1 à
’n’.
Donnez un nombre: 10
La somme des carrés entre 1 et 10 est 385.
Code
n = int(input("Donnez un nombre: "))
somme=0
for i in range(1, n+1):
somme=somme+i**2
print("La somme des carrés entre 1 et %i est %i." %( n, somme ))
Donnez un nombre: 10
La factorielle de 10 est 3628800.
Donnez un nombre: 10
La factorielle de 10 est 3628800.
Code
n = int(input("Donnez un nombre: "))
fact=1
for i in range(1, n+1):
fact=fact*i
print("La factorielle de %i est %i." %( n, fact ))
π Écrire un programme qui affiche tous les nombres premiers entre 2 et le nombre entré.
π Écrire un programme qui affiche tous les nombres premiers entre 2 et le nombre entré.
Code
n = int(input("Donnez un nombre: "))
for i in range(2, n):
for j in range(2, i):
if i % j ==0;
break
else:
print(i)
Définition
Un objet liste est une variable python définie à partir d’une séquence de valeurs (numériques et/
ou en caractères) indicées, spécifiées à l’intérieur d’un crochet et séparées par des virgules .
F La première valeur d’une liste a pour indice 0, la seconde valeur 1, ..., la dernière valeur a
pour indice n-1 où n est le nombre total d’éléments de la liste.
F En Python, un objet liste peut être déclaré et défini manuellement ou en utilisant la fonction
list(). On distingue deux catégories de listes: les listes à une dimension (ou listes simples) et les
listes à plusieurs dimensions
F Modifier ou remplacer les éléments d’une liste: soit la liste L définie par:
L=["lundi", "mardi", "mercredi", 1800, 20.357, "jeudi", "vendredi" ]
L[3]=L[3]+100 # ajouter 100 à l’élément 1800
L[6]=L[6]+ ’ samedi’ # remplacer vendredi par vendredi samedi
L[2]= ’ dimanche ’ # remplace mercredi par dimanche
October 24, 2024 60 / 164
Les listes
∏ Les opérations sur les listes
Villes=[ "Paris", "Berlin", "Londres", "Bruxelles" ]
F Ajouter & Supprimer des éléments:
Fonction append()
[Link](’Madrid’) # ajoute ’Madrid’ à la fin de la liste, append permet d’ajouter
un seul élément
Fonction extend()
[Link]([’Dublin’,’Geneve’]) # ajoute une liste à la fin de la liste
fonction insert() :
[Link](3, ’Paris’) # insert ’Paris’ au troisieme index de la liste, décallant ainsi
le reste de la liste
Fonctions remove() ou delete()
[Link](’Paris’) # supprime ’Paris’ de la liste initiale Villes
del Villes[2] #supprime l’élément d’indice 2 qui correspond ici ’Londres’
Remarque
Lorsque le tri est réalisé sur une liste contenant à la fois des chiffres et des caractères,
un message d’erreur est renvoyé. L’une des solutions serait alors de convertir les
chiffres en type caractères avec la fonction str(); faire le tri et ensuite reconvertir les
chiffres en utilisant les fonction int() ou float().
F Joindre les éléments d’une liste pour former une chaîne de caractères :
Fonction join()
4 Jointure avec espace comme séparateur
ch1= " ".join(Villes) # renvoie ’Paris Berlin Londres Bruxelles’
4 Jointure sans séparateur (ni espace)
ch1= "".join(Villes) # renvoie ’ParisBerlinLondresBruxelles’
Remarque
La fonction join() ne s’applique qu’à une liste de chaînes de caractères (pas aux listes de
chiffres). Pour ceux-ci il faut d’abord changer leur type en caractères en utilisant la fonction
str().
Remarque
La fonction in s’avère utile dans de nombreuses situations. Elle sert dans la définition des
boucles for qui font des itérations sur tous éléments d’une séquence notamment d’une liste.
Elle peut aussi servir dans la définition des instructions conditionnelles en l’associant avec la
clause if.
Exemple
if "Rabat" in Villes:
print("Oui Rabat existe dans la liste villes")
else :
print("Non Rabat n’existe pas dans la liste villes")
Remarque
L’option 1 dans la fonction enumerate() signifie que les indices nouvellement crées doivent com-
mencer par 1 au lieu de la valeur par défaut qui est 0 (enumerate(villes) or enumerate(villes,0))
F Récupérer simultanément les indices et les valeurs des éléments d’une liste :
Exercices d’application:
¿ Écrire un programme qui affiche les éléments et les indices d’une liste en utilisant la boucle for
¡ Écrire un programme qui retourne deux listes qui contiennent les éléments et les indices d’une
liste
Remarque
On remarque que chaque modification de villes se répercute automatiquement sur copyvilles.
Ce qui démontre que la création de copie par assignation ne permet de faire qu’une copie
dynamique (référencement) et non une copie définitive.
Il existe d’autres méthodes alternatives pour faire une copie d’une liste. Le choix de la méthode
dépendra alors selon qu’il s’agisse d’une liste à une dimension ou une liste à plusieurs dimensions
(c’est-à-dire une liste des listes)
Remarque
Pour accéder à la liste complète des fonctions associées à une liste, il faut utiliser la fonction
dir(). Par exemple la fonction dir(x) affiche toutes les fonctions disponibles pour la liste x. Et
pour obtenir l’aide sur une fonction on tape la commande help( [Link]).
Remarque
Lorsque les deux listes n’ont pas la même longueur, la dimension de la liste finale se limite à
celle de la liste avec la longueur minimale.
F Fonction map()
Elle permet d’exécuter une fonction donnée sur chaque élément d’une liste initiale et renvoie
le résultat final sous forme d’une nouvelle liste fonctionne sur le principe définit par le
programme suivant:
F Fonction map()
Considérant la liste : Villes=["Paris", "Berlin", "Londres", "Bruxelles" ]
F Fonction map()
¿ Exercice d’application :
Calculer la racine carrée des éléments d’une liste définie par listnum=[4,8,9]
F Fonction map()
¿ Exercice d’application
Calculer la racine carrée des éléments d’une liste définie par listnum=[4,8,9]
Réponse:
listnum=[4,8,9] # définition de la liste initiale
from math import sqrt # importation de la fonction sqrt à partir du module
result=list(map(sqrt,listnum)) # renvoie [2.0,2.0,3.0]
F Fonction filter()
Comme sa dénomination indique, la fonction filter() permet de mettre un filtre sur les
éléments d’une liste afin de renvoyer ceux qui remplissent les conditions définies par le filtre.
Contrairement à la fonction map(), la fonction filter() exécute toujours des instructions
conditionnelles. Les exercices ci-dessous sont des illustrations:
F Fonction filter()
Comme sa dénomination indique, la fonction filter() permet de mettre un filtre sur les
éléments d’une liste afin de renvoyer ceux qui remplissent les conditions définies par le filtre.
Contrairement à la fonction map(), la fonction filter() exécute toujours des instructions
conditionnelles. Les exercices ci-dessous sont des illustrations:
Considérant les deux listes suivantes:
Villes=["Paris", "Berlin", "Londres", "Bruxelles" ] et Listnum=[3, 6,13,20,21,40]
¿ Écrire un programme qui renvoie tous les éléments alphabétiques dans la liste "Villes"
¡ Écrire un programme qui renvoie tous les éléments dans la liste "Villes" qui contiennent un
motif donné
¬ Écrire un programme qui renvoie tous les éléments dans la liste "Villes" dont la longueur est
supérieure à une certaine valeur
√ Écrire un programme qui récupère les nombres impairs dans la liste "Listnum"
October 24, 2024 79 / 164
Les listes
π Traitement des listes par les fonctions map(), filter() et reduce()
F Fonction filter()
Considérant les deux listes suivantes:
Villes=["Paris", "Berlin", "Londres", "Bruxelles" ] et Listnum=[3, 6,13,20,21,40]
¿ Écrire un programme qui renvoie tous les éléments alphabétiques dans la liste "Villes"
Result=list(filter([Link],Villes))
print(Result) # renvoie [’Paris’, ’Berlin’,’Londres’, ’Bruxelles’]
¡ Écrire un programme qui renvoie tous les éléments dans la liste "Villes" qui contiennent un
motif donné
On souhaite récupérer tous les éléments de la liste qui contiennent "s"
fun= lambda x: "s" in x
Result=list(filter(fun,Villes))
print(Result) # renvoie [’Paris’, ’Londres’, ’Bruxelles’]
F Fonction reduce()
La fonction reduce en Python est utilisée pour appliquer une fonction cumulativement à
tous les éléments d’une liste (ou autre itérable), de manière à réduire cette liste à une seule
valeur. Elle est particulièrement utile lorsque vous souhaitez combiner les éléments d’une
liste selon une règle définie, comme les additionner, les multiplier, ou encore les concaténer.
D’une manière générale, la fonction reduce() renvoie généralement une valeur tandis
que les fonction map() et filter() renvoient des listes.:
Remarque
Il faut noter que dans les versions récentes de python la fonction reduce() n’est plus une
fonction de la bibliothèque standard de python. La fonction a été intégrée au module
functools qui nécessite d’abord d’être importé avant de pouvoir utiliser la fonction reduce().
Pour voir la liste complète des opérateurs arithmétiques de python sous forme de fonctions
consulter la page: [Link]
October 24, 2024 83 / 164
Les listes
π Traitement des listes par les fonctions map(), filter() et reduce()
F Fonction reduce()
Pour utilser la fonction reduce(), on doit importer le module functools comme suit:
import functools
from functools import reduce
Définition
A l’instar des objets listes, les objets tuples sont des séquences de valeurs (numériques et/ou en
caractères) dont les éléments sont indiqués entre parenthèses (crochets pour les listes) et séparés
par des virgules. A la différence des listes, les éléments d’un tuple sont indicés (accessibles par
slicing) mais pas modifiables. Toutefois, il est possible d’extraire les éléments pour en créer
d’autres objets.
Étant donné la liste de tuples suivante, faire un programme qui parcoure la liste et qui affiche
l’élève ayant la meilleure note et celui qui a la plus basse.
students= [("jérémy", 12), ("mathilde", 10), ("matthieu", 16), ("géraldine", 14)]
Réponse :
Définition
Les objets set sont des séquences de valeurs sans doublons (numériques et/ou en caractères)
indiquées entre accolades et séparés par des virgules. A la différence des listes et des tuples,
les set ne sont pas indicés. Les éléments sont inaccessibles par slicing. Par conséquent, ils sont
non modifiables. Pour pouvoir effectuer les opérations de modifications, on est souvent obligé
de transformer le set en liste en utilisant la fonction list().
 D’une manière générale, les sets sont construits à partir des listes ou des tuples. Ils sont
principalement utilisés pour:
éliminer des doublons dans une séquence
tester si un élément appartient ou non à une collection
Définition
Les objets array sont des séquences de valeurs (uniquement numériques) se présentant sous
formes de tableaux d’un ou plusieurs dimensions (vecteur ou matrice). Les arrays sont des objets
définis avec la fonction array() accessible à partir du module numpy (module spécialisé dans les
calculs numériques sous python). Pour pouvoir donc définir un objet array, il faut, au préalable
importer le module numpy comme suit :
import numpy
Remarque
La différence fondamentale entre un objet array à une dimension et une liste (ou un tu-
ple) est que celui-ci est considéré comme un vecteur. Par conséquent on peut effectuer
des opérations vectorielles élément par élément. Ce qui est bien commode lorsqu’on
analyse de grandes quantités de données.
Remarque
Sur le dernier exemple de multiplication, l’array final correspond à la multiplication élément
par élément des deux array initiaux. Avec les listes, ces opérations n’auraient été possibles
qu’en utilisant des boucles
F Dimension d’array:
Pour déterminer la dimension d’un array, on utilise la fonction shape(). Soit le array défini
par :
array1 = [Link](4)
[Link](array1) # renvoie (4,) signifiant que l’array x contient 4 élements
F Opérations sur les arrays
Conversion d’un array vectoriel en array matriciel: fonctions reshape() et resize()
array1 = [Link](9)
[Link](array1,(3,3)) # Renvoie un array matriciel 3x3 en distribuant les éléments de
l’array initial sur chaque ligne en revenant à la ligne quand la ligne est remplie
[Link](array1,(2,2)) # Renvoie un array matriciel 2x2 en distribuant les éléments de
l’array initial sur chaque ligne en revenant à la ligne quand la ligne est remplie.
Il s’arrête lorsque la matrice 2x2 est remplie.
Remarque
Par défaut, les fonctions zeros() et ones() génèrent des réels (float), mais on peut modifier
ce comportement en demandant par exemple des entiers en passant l’option int en second
argument.
Définition
Un dictionnaire (ou bibliothèque) est une collection d’objets formée de couples clé-valeur séparés
par des virgules, l’ensemble spécifié à l’intérieur des accolades.
Exemples
Les quatre variables ci-dessous représentent quatre manières typiques de définition d’un diction-
naire:
diction1= {’nom’ : ’Jean’, ’age’ : 21, ’poids’ : 54, ’taille’ : 1.70}
diction2= {’Jean’ : [20, 60, 3], ’Paul’ : [30, 1.80], ’Pierre’ : [75, 1.65]}
diction3= {’Jean’ : (20, 60, 3), ’Paul’ : (30, 1.8), ’Pierre’ : (75, 1.65)}
diction4= {’nom’ : ’Jean’, ’biométrie’ : [21, 54, 1.7], ’score’ : (75, 1.65); ’rang’ : 21}
Récupérer les clés ou les valeurs d’un dictionnaire (les fonctions keys() et values())
diction= {’Jean’ : [25, 70, 1.75], ’Paul’ : [30, 65, 1.80], ’Pierre’ : [35, 75, 1.65]}
Keys=[Link]() # renvoie dict_keys([’ Jean ’, ’ Paul ’, ’ Pierre ’])
Values=[Link]() # renvoie dict_values([[25, 70, 1.75], [30, 65, 1.8], [35, 75, 1.65]])
October 24, 2024 104 / 164
Interlude : Boucles ’for’ avancées
F Méthode .readlines()
Avant de passer à un exemple concret, créez un fichier avec le contenu suivant dans l’éditeur
de texte de votre choix :
girafe
tigre
singe
souris
Sauvegardez ce fichier dans votre répertoire actuel sous le nom [Link], puis testez le
code suivant dans l’interpréteur Python ou dans tout autre environnement Python.
F Méthode .readlines()
F Méthode .readlines()
Remarque
Chaque élément de la liste lignes est une chaîne de caractères, car Python lit le contenu
d’un fichier sous cette forme.
Chaque élément se termine par le caractère spécial \n, représentant un «saut de ligne»,
qui permet de passer à la ligne suivante.
Remarque
L’instruction with crée un bloc d’instructions indenté, dans lequel toutes les opérations
sur le fichier sont effectuées.
Chaque élément se termine par le caractère spécial \n, représentant un «saut de ligne»,
qui permet de passer à la ligne suivante. À la fin de ce bloc, Python ferme automatique-
ment le fichier, rendant l’utilisation de la méthode .close() inutile.
F Méthode .read()
Il existe d’autres méthodes que .readlines() pour lire et manipuler un fichier. Par
exemple, la méthode .read() lit l’intégralité du fichier et renvoie son contenu sous la forme
d’une seule chaîne de caractères :
La méthode .readline() (sans le ’s’ à la fin) lit une seule ligne d’un fichier et la renvoie
sous forme de chaîne de caractères. À chaque nouvel appel de .readline(), la ligne suivante
est retournée. Utilisée avec une boucle while, elle permet de lire un fichier ligne par ligne:
Python cherche à rendre les choses aussi simples que possible. Voici une méthode à la
fois élégante et efficace pour parcourir un fichier:
Écrire dans un fichier est aussi simple que de le lire. Voyez l’exemple suivant :
 Ce n’est pas le résultat escompté, car nous voulions implicitement que chaque nom d’animal
soit sur une ligne distincte. Nous avons simplement oublié d’ajouter un caractère de fin de ligne
après chaque nom. Pour corriger cela, nous pouvons utiliser l’écriture formatée :
 On peut avec l’instruction with ouvrir deux fichiers (ou plus) en même temps. Voyez l’exemple
suivant:
souris * souris
girafe * girafe
lion * lion
singe * singe
Les modules sont des programmes Python regroupant des fonctions fréquemment réutilisables,
également appelés bibliothèques (ou "libraries" en anglais). Ils agissent comme des "boîtes à
outils" qui vous seront particulièrement utiles.
‘
Les développeurs de Python ont créé une multitude de modules accomplissant diverses
tâches. Il est donc recommandé de vérifier systématiquement si le code que vous envisagez
d’écrire n’existe pas déjà sous forme de module. ‘
La majorité de ces modules sont inclus dans les versions standards de Python. Une docu-
mentation complète est disponible sur le site officiel de Python. N’hésitez pas à explorer ce
site, car le nombre de modules disponibles est impressionnant (plus de 300).
Syntaxe générale
import module1, module2 # Importe les modules
..........
from module import func1 , func2 # Importe les fonctions
...........
from module import * # Importe toutes les fonctions du module
...........
Exemples de modules:
 la fonction randint renvoie un nombre entier tiré aléatoirement entre 0 inclus et 10 inclus.
October 24, 2024 120 / 164
Importation de modules
Exemples de modules:
Remarque
En pratique, il est recommandé de charger uniquement le module, puis d’appeler explicite-
ment les fonctions dont vous avez besoin, plutôt que de charger toutes ses fonctions d’un coup.
Z Il est également possible de définir un alias (un nom plus court) pour un module :
import random as rand
[Link](0, 10)
[Link](1, 3)
Z Pour vider de la mémoire un module déjà chargé, on peut utiliser l’instruction del :
import random
[Link](0, 10)
del random
[Link](0, 10) ‡ génère l’erreur suivante:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name ’random’ is not defined. Did you forget to import
’random’ ?
October 24, 2024 122 / 164
Obtenir de l’aide sur les modules importés
Z Pour obtenir de l’aide sur un module, il vous suffit d’utiliser la commande help():
import random
help(random)
[..........]
Z La commande help() est en réalité une commande générale qui permet d’obtenir des infor-
mations sur n’importe quel objet chargé en mémoire:
Liste = [1, 2, 3]
help(Liste )
Help on list object:
Z Enfin, pour afficher rapidement toutes les méthodes et variables associées à un objet, vous
pouvez utiliser la fonction dir().
import random
dir(random)
October 24, 2024 123 / 164
Quelques modules courants
Il existe une série de modules que vous utiliserez probablement en programmant avec Python.
Voici une liste non exhaustive (pour une liste complète, consultez la page des modules sur le site
officiel de Python) :
math : fonctions et constantes mathématiques de base (sin, cos, exp, pi, etc.).
sys : interaction avec l’interpréteur Python, notamment pour le passage d’arguments (détails
plus bas).
pathlib : gestion des fichiers et répertoires (détails plus bas).
random : génération de nombres aléatoires.
time : accès aux fonctions liées à l’heure de l’ordinateur et à la gestion du temps.
urllib : récupération de données en ligne depuis Python.
Tkinter : interface Python avec Tk pour la création d’objets graphiques.
re : gestion des expressions régulières
Z La fonction choices() (avec un "s" à la fin) effectue plusieurs tirages aléatoires avec remise
dans une liste donnée, ce qui signifie qu’un même élément peut être sélectionné plusieurs
fois. Le nombre de tirages est défini par le paramètre k.
[Link](bases, k=5)
 affiche par exemple ["G", "A", "A", "T", "G"]
[Link](bases, k=5)
 affiche par exemple ["A", "T", "A", "A", "C"]
[Link](bases, k=10)
 affiche par exemple ["C", "T", "T", "T", "G", "A", "C", "A", "G", "G" ]
Le module Dans le module sys, la fonction [Link]()) permet de quitter un script Python. On
peut lui fournir un argument, généralement une chaîne de caractères, qui sera affiché lors de
la sortie du script. Cela est utile pour informer l’utilisateur des arguments requis si le script
s’exécute en ligne de commande.
Exemple:
import sys
if len([Link]) != 2:
[Link](f"ERREUR : il faut exactement un argument.")
print(f"Argument vaut : {[Link][1]}")
Si on exécute ce script
sans argument :
$ python [Link]
 affiche ERREUR : il faut exactement un argument.
Exemple:
import sys
if len([Link]) != 2:
[Link](f"ERREUR : il faut exactement un argument.")
print(f"Argument vaut : {[Link][1]}")
Remarque
On vérifie dans cet exemple que le script possède deux arguments, car le nom du script
lui-même compte pour un argument (le tout premier).
L’intérêt de récupérer des arguments passés dans la ligne de commande à l’appel du script
est de pouvoir ensuite les utiliser dans le script.
Le module pathlib permet de manipuler les fichiers et les répertoires. Généralement, on utilise
principalement la classe Path de ce module, que l’on importe ainsi :
from pathlib import Path
La méthode .exists() vérifie la présence d’un fichier sur le disque dur :
import sys
from pathlib import Path
if Path("[Link]").exists():
print("le fichier est présent")
else:
[Link]("le fichier est absent")
 Dans cet exemple, si le fichier n’existe pas sur le disque dur, on quitte le programme avec la
fonction exit() du module sys que nous venons de voir.
Enfin, la méthode .iterdir() liste le contenu du répertoire depuis lequel est lancé Python :
list(Path().iterdir())
À l’image de la fonction range(), la méthode .iterdir() est un itérateur. La fonction list() permet
d’obtenir une liste.
Cependant, il est également possible d’itérer directement sur le contenu d’un répertoire afin de
déterminer s’il contient des fichiers ou des sous-répertoires :
for nom in Path().iterdir():
if nom.is_file():
print(f"{nom} est un fichier")
else:
print(f"{nom} n’est pas un fichier")
‡ La méthode .is_file() renvoie True si l’objet est un fichier, et False si ce n’est pas le cas.
[Link]
[Link]
.
[Link]
tests [Link]
[Link]
def bonjour(nom):
"""Dit Bonjour."""
return f"Bonjour {nom}"
Vous avez probablement remarqué que notre module message ne contient que des fonctions et
une constante. Par conséquent, si nous l’exécutions comme un script ordinaire dans le shell, rien
ne s’afficherait.
python3 [Link]
 n’affiche rien !!!!!
Vous avez probablement remarqué que notre module message ne contient que des fonctions et
une constante. Par conséquent, si nous l’exécutions comme un script ordinaire dans le shell, rien
ne s’afficherait.
python3 [Link]
 n’affiche rien !!!!!
Cela s’explique par l’absence de programme principal, c’est-à-dire de blocs de code que l’interpréteur
exécute lorsqu’on lance le script.
À l’inverse, que se passe-t-il si on importe un script en tant que module alors qu’il contient
un programme principal avec des lignes de code ? Prenons par exemple le script [Link]
suivant:
"""Script de test."""
def bonjour(nom):
"""Dit Bonjour."""
return f"Bonjour {nom}"
# Programme principal.
print(bonjour("Mohammed"))
À l’inverse, que se passe-t-il si on importe un script en tant que module alors qu’il contient
un programme principal avec des lignes de code ? Prenons par exemple le script [Link]
suivant:
"""Script de test."""
# Programme principal.
print(bonjour("Mohammed"))
À l’inverse, que se passe-t-il si on importe un script en tant que module alors qu’il contient
un programme principal avec des lignes de code ? Prenons par exemple le script [Link]
suivant:
"""Script de test."""
# Programme principal.
Ce comportement n’est pas souhaitable pour un
print(bonjour("Mohammed"))
module, car il ne doit pas produire d’affichage lors de
son importation.
Pour permettre l’utilisation d’un code Python à la fois comme module et comme script, il
est conseillé d’adopter la structure suivante:
"""Script de test."""
def bonjour(nom):
"""Dit Bonjour."""
return f"Bonjour {nom}"
if __name__ == "__main__":
print(bonjour("Mohammed"))
Pour permettre l’utilisation d’un code Python à la fois comme module et comme script, il
est conseillé d’adopter la structure suivante:
"""Script de test."""
def bonjour(nom):
"""Dit Bonjour."""
return f"Bonjour {nom}"
if __name__ == "__main__":
print(bonjour("Mohammed"))
Pour permettre l’utilisation d’un code Python à la fois comme module et comme script, il
est conseillé d’adopter la structure suivante:
"""Script de test."""
L’instruction if __name__ == "__main__":
indique à Python :
def bonjour(nom):
"""Dit Bonjour."""
return f"Bonjour {nom}"
if __name__ == "__main__":
print(bonjour("Mohammed"))
Pour permettre l’utilisation d’un code Python à la fois comme module et comme script, il
est conseillé d’adopter la structure suivante:
"""Script de test."""
L’instruction if __name__ == "__main__":
indique à Python :
def bonjour(nom):
¿ Si le programme [Link] est exécuté en tant
"""Dit Bonjour."""
que script dans un shell, le résultat du test if sera
return f"Bonjour {nom}"
alors True et le bloc d’instructions correspondant
sera exécuté :
if __name__ == "__main__":
print(bonjour("Mohammed"))
Pour permettre l’utilisation d’un code Python à la fois comme module et comme script, il
est conseillé d’adopter la structure suivante:
"""Script de test."""
L’instruction if __name__ == "__main__":
indique à Python :
def bonjour(nom):
¿ Si le programme [Link] est exécuté en tant
"""Dit Bonjour."""
que script dans un shell, le résultat du test if sera
return f"Bonjour {nom}"
alors True et le bloc d’instructions correspondant
sera exécuté :
if __name__ == "__main__":
python3 [Link]
print(bonjour("Mohammed"))
 affiche:
Bonjour Mohammed
Pour permettre l’utilisation d’un code Python à la fois comme module et comme script, il
est conseillé d’adopter la structure suivante:
"""Script de test."""
L’instruction if __name__ == "__main__":
def bonjour(nom): indique à Python :
"""Dit Bonjour.""" ¡ Si le programme [Link] est importé en tant
return f"Bonjour {nom}" que module, le résultat du test if sera alors False
et le bloc d’instructions correspondant ne sera pas
if __name__ == "__main__": exécuté :
print(bonjour("Mohammed")) import message2
 n’affiche rien:
∂ Fonction print()
u Comme on le sait déjà, la fonction print() a pour rôle d’afficher à l’écran les valeurs des
objets spécifiés comme arguments. Exemple :
print(’Bonjour’, ’à’, ’tous’)
x = 12
print(x)
y = [1, ’Lundi’, ’12’, 5, 3, ’valeur test’]
print(y)
u On peut remplacer le séparateur par défaut (l’espace) par un autre caractère quelconque
(ou même par aucun caractère), grâce à l’argument sep.
print(’Bonjour’, ’à’, ’tous’, sep =’*****’)
print(’Bonjour’, ’à’, ’tous’, sep =” )
Remarque
La fonction input() renvoie toujours une chaîne de caractères. Pour obtenir une valeur numérique,
vous devez convertir cette chaîne en un entier avec int() ou en un nombre décimal avec float().
Remarque
Les arguments peuvent être des paramètres ou des variables en utilisant une boucle lors de
l’exécution de la fonction.
‡ En définissant les valeurs par défaut pour les arguments d’une fonction, il est possible d’appeler
le programme avec une partie seulement des arguments attendus. Exemple :
salutation(’Dupont’, ’Mademoiselle’) #renvoie Bonjour Mademoiselle Dupont
‡ En définissant les valeurs par défaut pour les arguments d’une fonction, il est possible d’appeler
le programme avec une partie seulement des arguments attendus. Exemple :
salutation(’Dupont’, ’Mademoiselle’) #renvoie Bonjour Mademoiselle Dupont
Remarque
Les arguments sans valeur par défaut doivent être spécifiés avant les arguments avec les valeurs
par défaut. Par exemple, la définition ci-dessous est incorrecte et renvoie une erreur lors de
l’exécution.
def salutation(titre=’Monsieur’, nom):
October 24, 2024 150 / 164
Fonctions définies par l’utilisateur
ª Ordre des arguments lors de l’appel d’une fonction
Définition
Une fonction lambda est une fonction anonyme,
sans nom, utilisée pour des instructions courtes.
Elle permet de créer des fonctions simples sans
utiliser le mot clé def et sans les nommer ex-
plicitement.
Syntaxe
lambda arg1, arg2,..., argN: bloc instructions
(ou formules)
Définition Remarque
Une fonction lambda est une fonction anonyme, Étant donné qu’une fonction lambda n’a
sans nom, utilisée pour des instructions courtes. pas de nom, il est nécessaire de l’assigner
Elle permet de créer des fonctions simples sans à une nouvelle variable pour pouvoir
utiliser le mot clé def et sans les nommer ex- récupérer la valeur renvoyée lors de son ap-
plicitement. pel. L’exemple ci-dessous illustre l’appel de
la fonction lambda précédente en prenant
Syntaxe x=2 et y=3.
lambda arg1, arg2,..., argN: bloc instructions
(ou formules) Exemple:
x = lambda x, y: x*y
x(2,3) # appelle la fonction;
Exemple: lambda x, y: x*y  renvoie 2*3=6
October 24, 2024 152 / 164
Variables locales et globales
Définition
Une variable est appelée locale s’elle est définie à l’intérieur de la fonction. Elle n’est
accessible que pour cette fonction elle-même. En revanche, une variable définie à l’extérieur
de la fonction dans le corps du programme principal est appelée globale. Le contenu de cette
dernière est visible et accessible à partir de l’intérieur d’une fonction, mais cette fonction ne peut
pas modifier la valeur de la variable.
def myFunction1():
listeValeur = [ ]
for i in range(2, 11):
[Link](i**t2)
return listeValeur
x=myFunction1()
print(x)
 renvoie [4, 9, 16, 25, 36, 49, 64, 81, 100]
October 24, 2024 157 / 164
Utilisation des générateurs de fonction : Instruction yield
def myFunction2():
for i in range(2, 11):
yield i**2
myGenerator = myFunction2()
print(myGenerator)
 renvoie <generator object myFunction2 at 0x0B3D9D78>
‡ La première différence qui transparait avec l’utilisation de l’instruction return c’est que
l’instruction yield renvoie un objet générateur. Par conséquent un simple appel de la fonction
myFunction2 ne permet d’afficher les valeurs renvoyées par l’instruction yield.
October 24, 2024 158 / 164
Utilisation des générateurs de fonction : Instruction yield
On peut récupérer les valeurs(une à une) du générateur (nommé ici myGenerator) en utilisant
une nouvelle boucle comme suit :
Remarque
l’instruction return renvoie la liste finale alors que l’instruction yield définit d’abord les valeurs
et les stocke dans un objet de type générateur. On récupère alors les éléments en utilisant une
boucle pour former la liste finale des valeurs qui constitue les résultats. Cet aspect représente la
principale particularité de l’instruction yield par rapport à l’instruction return.
October 24, 2024 159 / 164
Gestion des erreurs et des exceptions : Blocs try-except
Lors de l’appel d’une fonction, l’interpréteur Python peut rencontrer des instructions qu’il
n’est pas en mesure d’exécuter (ex : erreur de syntaxe, division par zéro, accès à un fichier qui
n’existe pas, etc). Dans ces cas, il envoie un message d’erreur. Par exemple, soit l’instruction
définie comme suit :
Dans le cas où l’utilisateur saisit des chaînes de caractères contenant des valeurs alphabé-
tiques ou des caractères spéciaux, python enverra un message d’erreur de type « ValueError:
could not convert string to float... » car la fonction float() ne permet de convertir que des
chaînes constituées des valeurs en chiffres. Le résultat de l’exécution est l’arrêt du programme
avec affichage d’un message d’erreur.
N.B: Cette structure de code ne donne la main à l’utilisateur qu’un fois à l’issue duquel si une
valeur valide n’est pas saisie, le programme s’arrêtera