Computing">
[Go to site: main page, start]

0% ont trouvé ce document utile (0 vote)
6 vues229 pages

Introduction à la programmation Python

Python est un langage de programmation polyvalent, créé par Guido van Rossum dans les années 1980, qui se distingue par sa syntaxe simple et sa large utilisation dans divers domaines tels que le développement web et la science des données. Le document couvre l'historique de Python, ses avantages, et les concepts de base tels que les variables, leur type et leur nommage. Python est devenu populaire grâce à sa portabilité, sa facilité d'utilisation et ses capacités d'intégration avec d'autres langages.

Transféré par

nickyzouhaire45
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)
6 vues229 pages

Introduction à la programmation Python

Python est un langage de programmation polyvalent, créé par Guido van Rossum dans les années 1980, qui se distingue par sa syntaxe simple et sa large utilisation dans divers domaines tels que le développement web et la science des données. Le document couvre l'historique de Python, ses avantages, et les concepts de base tels que les variables, leur type et leur nommage. Python est devenu populaire grâce à sa portabilité, sa facilité d'utilisation et ses capacités d'intégration avec d'autres langages.

Transféré par

nickyzouhaire45
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

Programmation python

October 24, 2024

October 24, 2024 1 / 164


Introduction

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.

October 24, 2024 2 / 164


Introduction

I Historique de Python
1980s : Création par Guido van Rossum au CWI (Pays-Bas) pour combler les lacunes des
langages ABC et C.

October 24, 2024 3 / 164


Introduction

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.

October 24, 2024 3 / 164


Introduction

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.

October 24, 2024 3 / 164


Introduction

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.

October 24, 2024 3 / 164


Introduction

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.

October 24, 2024 3 / 164


Introduction

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.

October 24, 2024 3 / 164


Introduction
I Avantages du Python

1 Offre un environnement complet de développement comprenant un interpréteur et un en-


semble de bibliothèques

October 24, 2024 4 / 164


Introduction
I Avantages du Python

1 Offre un environnement complet de développement comprenant un interpréteur et un en-


semble de bibliothèques
2 Dispose d’un très large éventail de modules qui offre au programmeur des outils très divers
pour différentes utilisations:
T Développement Web (Zope, Django, Pyramid, Zope, Plone, Flask, . .)
T Calculs scientifiques
T Élaboration d’interfaces graphiques
T Programmation de scripts systèmes
T Traitement et analyse de données
T Bases de données relationnelles, etc...
October 24, 2024 4 / 164
Introduction

I Pourquoi Python est devenu le langage de programmation le plus populaire, très


utilisé en Data Science et Machine Learning?

October 24, 2024 5 / 164


Introduction

I Pourquoi Python est devenu le langage de programmation le plus populaire, très


utilisé en Data Science et Machine Learning?

T Offre tous les avantages de la programmation orientée-objet et permet d’écrire un code


facilement compréhensible.

October 24, 2024 5 / 164


Introduction

I Pourquoi Python est devenu le langage de programmation le plus populaire, très


utilisé en Data Science et Machine Learning?

T Offre tous les avantages de la programmation orientée-objet et permet d’écrire un code


facilement compréhensible.

T La portabilité du code =) sa capacité à fonctionner sur différentes plates-formes (Mac,


Unix, Windows, etc)

October 24, 2024 5 / 164


Introduction

I Pourquoi Python est devenu le langage de programmation le plus populaire, très


utilisé en Data Science et Machine Learning?

T Offre tous les avantages de la programmation orientée-objet et permet d’écrire un code


facilement compréhensible.

T La portabilité du code =) sa capacité à fonctionner sur différentes plates-formes (Mac,


Unix, Windows, etc)

T Langage semi-interprété

October 24, 2024 5 / 164


Introduction

I Pourquoi Python est devenu le langage de programmation le plus populaire, très


utilisé en Data Science et Machine Learning?

T Offre tous les avantages de la programmation orientée-objet et permet d’écrire un code


facilement compréhensible.

T La portabilité du code =) sa capacité à fonctionner sur différentes plates-formes (Mac,


Unix, Windows, etc)

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

October 24, 2024 5 / 164


Introduction
I Exécution d’un script python

T Principe
© Ecrire une suite d’instruction dans un fichier texte [Link].
print (’hello word’)
© Exécuter python [Link]

October 24, 2024 6 / 164


Introduction
I Exécution d’un script python

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

October 24, 2024 6 / 164


Les variables

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.

October 24, 2024 7 / 164


Les variables

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.

 En Python, la déclaration d’une variable et son initialisation (c’est-à-dire la première valeur


que l’on va stocker dedans) se font en même temps.

October 24, 2024 7 / 164


Les variables

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.

 En Python, la déclaration d’une variable et son initialisation (c’est-à-dire la première valeur


que l’on va stocker dedans) se font en même temps.

Affectation directe
F x=3
 définit la variable nommée x et lui assigne la valeur 3, type entier (int)

October 24, 2024 7 / 164


Les variables
Définir une variable à partir d’une séquence de valeurs
Les séquences de valeurs correspondent à un ensemble de valeurs successives et ordonnée dont
les valeurs peuvent être extraites comme une liste. Elles sont générées en utilisant la fonction
range()

October 24, 2024 8 / 164


Les variables
Définir une variable à partir d’une séquence de valeurs
Les séquences de valeurs correspondent à un ensemble de valeurs successives et ordonnée dont
les valeurs peuvent être extraites comme une liste. Elles sont générées en utilisant la fonction
range()

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

October 24, 2024 9 / 164


Type des variables:

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 :

October 24, 2024 10 / 164


Type des variables:
Exemple
F o y = 3.14
oy
3.14
F o a ="Python"
o a ’Python’
F o b = ’Python’
ob
’Python’
F o c = """Python"""
oc
’Python’
F o d =” ’Python” ’
od
’Python’ October 24, 2024 11 / 164
Type des variables:

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.

October 24, 2024 12 / 164


Type des variables:

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:

October 24, 2024 13 / 164


Type des variables:

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

October 24, 2024 13 / 164


Les variables: Nommage

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

October 24, 2024 14 / 164


Les variables: Nommage

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).

October 24, 2024 14 / 164


Les variables: Nommage

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.).

October 24, 2024 14 / 164


Les variables: Nommage

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.

October 24, 2024 14 / 164


Les variables: Opérations
Z Opérations sur les types numériques
Les quatre opérations arithmétiques de base s’effectuent facilement sur les types numériques,
tels que les entiers et les floats:
Exemple
F o X = 10
F o X+2
12
F o X-2
8
F o X*3
30
F o Y= 4.5
F o (X*10)+Y
34.5 October 24, 2024 15 / 164
Les variables: Opérations
Z Opérations sur les types numériques
 Notez cependant que si vous mélangez des entiers et des floats, le résultat sera renvoyé sous
forme de float, car ce type est plus général. De plus, l’utilisation de parenthèses permet de gérer
les priorités des opérations.

October 24, 2024 16 / 164


Les variables: Opérations
Z Opérations sur les types numériques
 Notez cependant que si vous mélangez des entiers et des floats, le résultat sera renvoyé sous
forme de float, car ce type est plus général. De plus, l’utilisation de parenthèses permet de gérer
les priorités des opérations.
 L’opérateur ’/ ’ réalise une division. Contrairement aux opérateurs ’+’, ’-’, et ’*’, il renvoie
toujours un résultat de type float.

October 24, 2024 16 / 164


Les variables: Opérations
Z Opérations sur les types numériques
 Notez cependant que si vous mélangez des entiers et des floats, le résultat sera renvoyé sous
forme de float, car ce type est plus général. De plus, l’utilisation de parenthèses permet de gérer
les priorités des opérations.
 L’opérateur ’/ ’ réalise une division. Contrairement aux opérateurs ’+’, ’-’, et ’*’, il renvoie
toujours un résultat de type float.
 L’opérateur puissance utilise les symboles ’**’ et ’pow()’ :

Exemple
F o 3**4
81
F o pow(3,4)
81

October 24, 2024 16 / 164


Les variables: Opérations

Z Opérations sur les types numériques


 Pour obtenir le quotient et le reste d’une division entière, on utilise respectivement les
opérateurs ’// ’ pour le quotient et ’ % ’ pour le reste.

October 24, 2024 17 / 164


Les variables: Opérations

Z Opérations sur les types numériques


 Pour obtenir le quotient et le reste d’une division entière, on utilise respectivement les
opérateurs ’// ’ pour le quotient et ’ % ’ pour le reste.

Exemple
F o 9// 4
2
F o9%4
1

October 24, 2024 17 / 164


Les variables: Opérations

Z Opérations sur les types numériques


 Pour obtenir le quotient et le reste d’une division entière, on utilise respectivement les
opérateurs ’// ’ pour le quotient et ’ % ’ pour le reste.

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.

October 24, 2024 17 / 164


Les variables: Opérations
Z Opérations sur les types numériques
 Enfin, il existe des opérateurs « combinés » qui réalisent à la fois une opération et une
affectation en une seule étape. Cette opération s’appelle une « incrémentation ».
Exemple
F o j=0
F o j=j+1
F oj
1
F o j += 1
F oj
2

October 24, 2024 18 / 164


Les variables: Opérations
Z Opérations sur les types numériques
 Enfin, il existe des opérateurs « combinés » qui réalisent à la fois une opération et une
affectation en une seule étape. Cette opération s’appelle une « incrémentation ».
Exemple
F o j=0
F o j=j+1
F oj
1
F o j += 1
F oj
2

 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.

October 24, 2024 19 / 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.

F x < y Inférieur strict F x != y: Différent


F x <= y: Inférieur ou égal F not x: Négation
F x > y: Supérieur strict F x or y : Ou-logique
F x >= y: Supérieur ou égal F x and y: Et-logique
F x == y: Égal

October 24, 2024 19 / 164


Les variables: Opérations

Z Opérations sur les chaînes de caractères


 Les opérateurs sur les chaînes permettent de concaténer, filtrer ou extraire des parties des
chaînes de caractères entres elles:

October 24, 2024 20 / 164


Les variables: Opérations

Z Opérations sur les chaînes de caractères


 Les opérateurs sur les chaînes permettent de concaténer, filtrer ou extraire des parties des
chaînes de caractères entres elles:
len(s) Longueur de la chaîne s
s1 + s2 Concaténation de ’s1’ et ’s2’
s*n Répétition ’n’ fois de la chaîne ’s’
s in t Teste si la chaîne ’s’ est présente dans ’t’.
s[n] Extraction du n-ième caractère en partant du début de la chaîne
s[-n] Extraction du n-ième caractère en partant de la fin de la chaîne
s[:n] Extraction des ’n’ premiers caractères de la chaîne
s[n:] Extraction des derniers caractères de la chaîne à partir du n-ème
s[-n:] Extraction des caractères des ’n’ derniers caractères de la chaîne
s[n:m] Extraction des caractères se trouvant entre le n-ième et le m-ième

October 24, 2024 20 / 164


Les variables: Opérations

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).

October 24, 2024 21 / 164


Les variables: Opérations
Z Fonction type( )
 la fonctions type() permet de tester le type d’une variable
Exemple: x=12 , y= 12.33 , z=’Python’, w=True
F o type(x)
<class ’int’>
F o type(y)
<class ’float’>
F o type(z)
<class ’str’>
F o type(w)
<class ’bool’>
F o type(x) is int
True
October 24, 2024 22 / 164
Les variables: Opérations

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().

October 24, 2024 23 / 164


Les variables: Opérations

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)

October 24, 2024 23 / 164


Les variables: Opérations

Z Note sur le vocabulaire et la syntaxe


F Variables et objets :
La notion de variable est commune à tous les langages de programmation.
Python est un langage orienté objet, donc le terme "objet" peut être utilisé pour désigner
une variable.
Exemple : "une variable de type entier" est équivalente à "un objet de type entier".

October 24, 2024 24 / 164


Les variables: Opérations

Z Note sur le vocabulaire et la syntaxe


F Variables et objets :
La notion de variable est commune à tous les langages de programmation.
Python est un langage orienté objet, donc le terme "objet" peut être utilisé pour désigner
une variable.
Exemple : "une variable de type entier" est équivalente à "un objet de type entier".
F Fonctions en Python :
Plusieurs fonctions ont été introduites, telles que type(), int(), float(), et str(), print()
Une fonction se reconnaît par son nom suivi de parenthèses (ex. type()).

October 24, 2024 24 / 164


Les variables: Opérations

Z Note sur le vocabulaire et la syntaxe


F Variables et objets :
La notion de variable est commune à tous les langages de programmation.
Python est un langage orienté objet, donc le terme "objet" peut être utilisé pour désigner
une variable.
Exemple : "une variable de type entier" est équivalente à "un objet de type entier".
F Fonctions en Python :
Plusieurs fonctions ont été introduites, telles que type(), int(), float(), et str(), print()
Une fonction se reconnaît par son nom suivi de parenthèses (ex. type()).
F Arguments des fonctions :
Ce qui se trouve entre les parenthèses d’une fonction est appelé argument.
Une fonction est une sorte de boîte à laquelle on passe un ou plusieurs arguments, qui
exécute une action et peut renvoyer un résultat ou un objet.

October 24, 2024 24 / 164


Affichage: Fonction print()

 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.

October 24, 2024 25 / 164


Affichage: Fonction print()

 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!

F o print( "Hello World", end="")


Hello world! o

October 24, 2024 25 / 164


Affichage: Fonction print()

 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.

October 24, 2024 26 / 164


Affichage: Fonction print()

 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!

F o print( "Hello", end="") ; print( "World!")


HelloWorld!

F o print( "Hello", end=" ") ; print( "World!")


Hello World!
October 24, 2024 26 / 164
Affichage : Fonction print()

 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

October 24, 2024 27 / 164


Affichage : Fonction print()

 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.

October 24, 2024 28 / 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.

 On peut modifier ce comportement en passant à la fonction print() l’argument par mot-clé


sep :
Exemple:
F o Var= 20; Nom= "Mohammed"
F o print(Nom, "a", Var, "ans", sep="")
Mohammeda20ans
F o print(Nom, "a", Var, "ans", sep="-")
Mohammed-a-20-ans
October 24, 2024 28 / 164
Affichage : Écriture formatée

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.

October 24, 2024 29 / 164


Affichage : Écriture formatée

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).

October 24, 2024 29 / 164


Affichage : Écriture formatée et l’opérateur %,

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

October 24, 2024 30 / 164


Affichage : Écriture formatée et l’opérateur %,

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 la méthode format()

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

October 24, 2024 30 / 164


Affichage : Écriture formatée
Z Utilisation des f-strings
F Prise en main des f-strings
Les f-strings permettent une meilleure organisation de l’affichage des variables. Reprenons
l’exemple ci-dessus à propos de notre ami Mohammed:

Exemple:
F o Var= 20; Nom= "Mohammed"
F o print(f"{Nom} a {Var} ans ")
Mohammed a 20 ans

October 24, 2024 31 / 164


Affichage : Écriture formatée
Z Utilisation des f-strings
F Prise en main des f-strings
Les f-strings permettent une meilleure organisation de l’affichage des variables. Reprenons
l’exemple ci-dessus à propos de notre ami Mohammed:

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:

October 24, 2024 32 / 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:

les deux-points ’:’ indiquent que ce qui suit va spécifier le format dans lequel on veut afficher
la variable

October 24, 2024 32 / 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:

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.

October 24, 2024 32 / 164


Affichage : Écriture formatée

F Spécification de format
Exemple
F o ValP= 3.14159265358

F o print(f"La valeur de ValP est {ValP:.2f}")


La valeur de ValP est 3.14)

F o print(f"La valeur de ValP est {ValP:.3f}"


La valeur de ValP est 3.142

October 24, 2024 33 / 164


Affichage : Écriture formatée

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.

October 24, 2024 34 / 164


Affichage : Écriture formatée
F Spécification de format
Exemple
F o print(10); print(1000)
10
1000
F o print(f"{10:>6d}"); print(f"{1000:>6d}")
10
1000
F o print(f"{10:<6d}"); print(f"{1000:<6d}")
10
1000
F o print(f"{10:^ 6d}"); print(f"{1000:^ 6d}")
10
1000
October 24, 2024 35 / 164
Affichage : Écriture formatée

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

October 24, 2024 36 / 164


Chapitre 2
Structures de Contrôle

October 24, 2024 37 / 164


Les blocs
Un bloc d’instructions est une unité de programmation qui re-
groupe une séquence ordonnée d’instructions qui s’exécutent
les unes après les autres. Un programme impératif va faire
s’enchaîner les blocs d’instructions en les branchant les uns aux
autres via des structures de contrôle telles que if, for, while.

# commentaire # Loop
instruction(bloc1) i=0
statement arguments: while ( i < 10):
instruction(bloc2) print ("Hello!")
instruction(bloc2) i=i+1

October 24, 2024 38 / 164


Les blocs

# commentaire # Loop
instruction(bloc1) i=0
statement arguments: while ( i < 10):
instruction(bloc2) print ("Hello!")
instruction(bloc2) i=i+1

Syntaxe Python en trois règles


1 Tout ce qui suit un caractère ’#’ est considéré comme un commentaire et est ignoré ;
2 Les instructions qui se trouvent au même niveau d’indentation font parti d’un même bloc ;
3 Les blocs peuvent être coordonnés entre eux via des structures de contrôle qui ouvrent un
nouveau bloc en se terminant par un caractère ’:’ (deux points).

October 24, 2024 39 / 164


Les branchements

Les tests permettent de choisir un chemin d’exécution en fonction de la valeur de certaines


variables. En Python, les tests se font avec trois mots clefs :

Mots clefs
if (premier test),

elif (tests additionnels),

else (tous les autres cas)

October 24, 2024 40 / 164


Les branchements

Les tests permettent de choisir un chemin d’exécution en fonction de la valeur de certaines


variables. En Python, les tests se font avec trois mots clefs :

Mots clefs Syntaxe : if...elif.. else


if (premier test), if (condition1) :
instruction 1
elif (tests additionnels), elif (condition2) :
instruction 2
else (tous les autres cas) else :
autre bloc instructions

October 24, 2024 40 / 164


Les branchements

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.

October 24, 2024 41 / 164


Les branchements
 Le résultat d’une expression logique peut être placé dans une variable booléenne:
Exemple
condition = (x >=0 and x <50)
if condition :
print ("La condition est vérifiée" )
if not condition:
print ("La condition n’est pas vérifiée" )

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).

October 24, 2024 43 / 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).
name = input("Entrez votre nom: ")
print ("Bonjour %s, votre nom comporte %i lettre(s)." % (name , len (name)))

October 24, 2024 43 / 164


Les branchements

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

October 24, 2024 44 / 164


Les branchements

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") )

October 24, 2024 44 / 164


La boucle ’for’
En Python, for est un itérateur sur des collections d’objets. Il est utilisé pour parcourir, dans
l’ordre s’il y en a un, les éléments de la collection
Syntaxe boucle « for... in... »
for element in sequence de valeurs :
bloc instructions

October 24, 2024 45 / 164


La boucle ’for’
En Python, for est un itérateur sur des collections d’objets. Il est utilisé pour parcourir, dans
l’ordre s’il y en a un, les éléments de la collection
Syntaxe boucle « for... in... »
for element in sequence de valeurs :
bloc instructions

Exemple 1: Exemple 2:
for i in range(1,11): for i in "Hello world"
print (i) print (i)

October 24, 2024 45 / 164


La boucle ’for’
En Python, for est un itérateur sur des collections d’objets. Il est utilisé pour parcourir, dans
l’ordre s’il y en a un, les éléments de la collection
Syntaxe boucle « for... in... »
for element in sequence de valeurs :
bloc instructions

Exemple 1: Exemple 2:
for i in range(1,11): for i in "Hello world"
print (i) print (i)

La fonction ’range(start, stop, step)’


Permet de créer une collection de nombres pour itérer dessus.
range (5) - - - - - -> 0, 1, 2, 3, 4
range(2, 5, 2) - - - - -> 2, 4
October 24, 2024 45 / 164
La boucle "for"

Exemple 3: Combinaison d’une boucle « for...in ... » et d’une clause « if »


Mych = "Hello World"
for i in Mych:
if i in "AEIOUYaeiouy":
print ("La lettre", i,"est une voyelle")
else:
print ("La lettre", i,"est une consonne")

October 24, 2024 46 / 164


La boucle "while"

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

October 24, 2024 47 / 164


La boucle "while"

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)

October 24, 2024 47 / 164


’break’ & ’continue’

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.

Exemple 1: break Exemple 2: continue


for i in range(5): for i in range(5):
if i >2: if i ==2:
break continue
print (i) print (i)

October 24, 2024 48 / 164


Exercices d’application:

1 Écrire un programme qui demande un nombre à l’utilisateur et qui affiche la chaîne de


caractères ’Hello World!’ autant de fois que demandé.

2 Écrire un programme qui demande un nombre ’n’ et qui calcule la somme des carrés de 1 à
’n’.

3 Écrire un programme qui demande un nombre et calcule sa factorielle.

4 Écrire un programme qui affiche tous les nombres premiers entre 2 et le nombre entré.

October 24, 2024 49 / 164


Exercices d’application:

1 Écrire un programme qui demande un nombre à l’utilisateur et qui affiche la chaîne de


caractères ’Hello World!’ autant de fois que demandé. Utilisez les boucles For et While

Entrez un nombre: 2
Hello World!
Hello World!

October 24, 2024 50 / 164


Exercices d’application:

1 Écrire un programme qui demande un nombre à l’utilisateur et qui affiche la chaîne de


caractères ’Hello World!’ autant de fois que demandé. Utilisez les boucles For et While

Entrez un nombre: 2
Hello World!
Hello World!

Code avec While Code avec For


n = int(input("Entrez un nombre: ")) n = int(input("Entrez un nombre: "))
while (n> 0): for i in range(n):
print("Hello World!") print("Hello World!")
n=n-1

October 24, 2024 50 / 164


Exercices d’application:

∑ É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.

October 24, 2024 51 / 164


Exercices d’application:

∑ É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 ))

October 24, 2024 51 / 164


Exercices d’application:

∏ Écrire un programme qui demande un nombre et calcule sa factorielle.

Donnez un nombre: 10
La factorielle de 10 est 3628800.

October 24, 2024 52 / 164


Exercices d’application:

∏ Écrire un programme qui demande un nombre et calcule sa factorielle.

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 ))

October 24, 2024 52 / 164


Exercices d’application:

π Écrire un programme qui affiche tous les nombres premiers entre 2 et le nombre entré.

October 24, 2024 53 / 164


Exercices d’application:

π É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)

October 24, 2024 53 / 164


Interlude : Fonctions sur les chaînes:
Soit mystr est une variable de type chaine de caractère:
[Link]() : Retourne une copie de la chaîne de caractères avec la première lettre en
majuscule et les suivantes en minuscule.
[Link]() : Retourne une copie de la chaîne de caractères toutes en minuscules.
[Link]() : Retourne une copie de la chaîne de caractères toutes en majuscules
[Link](motif) : Compte le nombre de fois que le motif apparaît dans une chaîne de caractère.
[Link](motif) : Retourne le premier index où l’on trouve le motif recherché.
[Link](motif1, motif2) : Remplace le motif1 par le motif2.
o mystr = "consonance"
o [Link]("on")
2
o [Link](’a’)
6
o [Link](’on’, ’in’)
’cinsinance’
October 24, 2024 54 / 164
Chapitre 3
Conteneurs standards

October 24, 2024 55 / 164


Les Listes

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

October 24, 2024 56 / 164


Les listes

∂ Déclaration des listes simples & listes à plusieurs dimensions


Exemple d’une liste simple
F Déclaration manuelle:
x=["lundi", "mardi", "mercredi", 18, 20.357, "jeudi", "vendredi" ]
F Déclaration en utilisant la fonction list:
1 y=list(range(0,10)) : # Liste formée par une séquence de nombres entier de 0 à 9
2 y=list() or y=[], # création d’une liste vide.

Exemple d’une liste à plusieurs dimensions


F x=[[1,2,3],[2,3,4],[3,4,5]] # liste à deux dimensions (liste de listes)
F y= [[[1,2],[2,3]],[[4,5],[5,6]]] # liste à trois dimensions (liste de listes de listes)

October 24, 2024 57 / 164


Les listes

∑ Indiçage d’une liste (slicing): Liste simple

L[i] Renvoie l’élément de l’indice i


L[i,j] Renvoie tous les éléments compris entre l’indice i et l’indice j
(Nb: l’élément d’indice j est exclu)
L[i:j:p] Renvoie tous les éléments compris entre l’indice i et l’indice j avec un saut de p
éléments à chaque fois (Nb: l’élément d’indice j est exclu)
L[: :p] Renvoie tous les éléments compris entre l’indice 0 et le dernier indice avec un saut
de p éléments à chaque fois
L[: :-1] Renvoie une liste contenant tous éléments de L en les réorganisant du dernier
élément au premier élément (équivalent à [Link]())
L[-n] Extraction du n-ième élément en partant de la fin de la liste

October 24, 2024 58 / 164


Les listes

∑ Indiçage d’une liste (slicing): liste à plusieurs dimensions

Soit la liste x définie comme suit: L=[[1,2,3],[2,3,4],[3,4,5]]

L[0] Renvoie le premier élément-liste [1,2,3]


L[2] Renvoie [ 3,4,5]
L[0][0] renvoie le premier élément du premier élément-liste c-à-d 1
L[2][1] Renvoie 4
L[1:] Renvoie [[2, 3, 4], [3, 4, 5]]
L[1:][0] Renvoie [2, 3, 4]
L[-1] Renvoie [3, 4, 5]
L[1][:2] Renvoie [2, 3]
L[1][1:] Renvoie renvoie [3, 4]

October 24, 2024 59 / 164


Les listes
∏ Les opérations sur les listes

F Nombre d’éléments d’une liste L: len(L)

F Addition & multiplication: soient deux listes L1 et L2 définies par:


L1= [’girafe’,’tigre’], L2= [’singe’,’souris’]
L1 + L2 # renvoie [’girafe’, ’tigre’, ’singe’, ’souris’]
L1*3 # renvoie [’girafe’, ’tigre’, ’girafe’, ’tigre’, ’girafe’, ’tigre’]

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’

October 24, 2024 61 / 164


Les listes

∏ Les opérations sur les listes


Villes=[ "Paris", "Berlin", "Londres", "Bruxelles" ]

F Compter le nombre d’occurrences d’une valeur dans une liste :


Fonction count() :
[Link](’Paris’) # affiche le nombre de fois que ’Paris’ apparait dans la liste

F Trier les éléments d’une liste :


Fonction sort():
[Link]() # trie la liste villes (ordre alphabétique croissant)
print(Villes) #renvoie [’Berlin’, ’Bruxelles’, ’Londres’, ’Paris’]
[Link](reverse=True) # trie la liste villes (ordre alphabétique décroissant)
print(Villes) #renvoie [’Paris’, ’Londres’, ’Bruxelles’, ’Berlin’]

October 24, 2024 62 / 164


Les listes
∏ Les opérations sur les listes
Villes=[ "Paris", "Berlin", "Londres", "Bruxelles" ]

F Trier les éléments d’une liste :


Fonction sort() :

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 Intervertir l’ordre des éléments dans une liste :


Fonction reverse()
[Link]() # Renvoie [’Bruxelles’, ’Londres’, ’Berlin’, ’Paris’]
October 24, 2024 63 / 164
Les listes

∏ Les opérations sur les listes


Villes=[ "Paris", "Berlin", "Londres", "Bruxelles" ]

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().

October 24, 2024 64 / 164


Les listes

∏ Les opérations sur les listes


Villes=[ "Paris", "Berlin", "Londres", "Bruxelles" ]
F Tester l’existence d’un élément dans une liste:
Fonction in
"Paris" in Villes # Renvoie True(car il y a bien Paris dans la liste villes)
"Rabat" in Villes # Renvoie False
"Rabat" not in Villes # Renvoie True

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.

October 24, 2024 65 / 164


Les listes

∏ Les opérations sur les listes


Villes=[ "Paris", "Berlin", "Londres", "Bruxelles" ]

F Tester l’existence d’un élément dans une liste : fonction in


Fonction in
"Paris" in Villes # Renvoie True(car il y a bien Paris dans la liste villes)
"Rabat" in Villes # Renvoie False
"Rabat" not in Villes # Renvoie True

Exemple
if "Rabat" in Villes:
print("Oui Rabat existe dans la liste villes")
else :
print("Non Rabat n’existe pas dans la liste villes")

October 24, 2024 66 / 164


Les listes
∏ Les opérations sur les listes
F Récupérer simultanément les indices et les valeurs des éléments d’une liste :
Fonction enumerate()
 La fonction enumerate() permet de récupérer les indices et les valeurs d’une liste pour les
stocker sous forme de tuple.

Exemple 1: Générer une liste à partir de la fonction enumerate()


Villes=["Paris", "Berlin", "Londres", "Bruxelles" ]
Mylist=list(enumerate(Villes,1))
print(Mylist) # renvoie [(1, ’Paris’), (2, ’Berlin’), (3, ’Londres’), (4, ’Bruxelles’)]

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))

October 24, 2024 67 / 164


Les listes

∏ Les opérations sur les listes

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

October 24, 2024 68 / 164


Les listes
∏ Les opérations sur les listes
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
for indice, valeur in enumerate(villes):
print(indice)
print(valeur)
¡ Écrire un programme qui retourne deux listes qui contiennent les éléments et les indices d’une
liste
listIndices=[ ] # Création d’une liste vide (pour les indices)
listValeurs=[ ] # Création d’une liste vide (pour les valeurs)
for indice, valeur in enumerate(villes):
[Link] (indice)
[Link] (valeur)
print(listIndices)
print(listValeurs)
October 24, 2024 69 / 164
Les listes

∏ Les opérations sur les listes


F Faire la copie d’une liste
Copie par assignation
copyvilles = Villes # définition de la liste copyvilles par assignation
print(copyvilles) # renvoie [’Paris’, ’Berlin’, ’Londres’, ’Bruxelles’]
Villes [1]= "Rabat"
print(copyvilles) # renvoie [’Paris’, ’Rabat’, ’Londres’, ’Bruxelles’]

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)

October 24, 2024 70 / 164


Les listes

∏ Les opérations sur les listes


F Faire la copie d’une liste
Utilisation de la fonction copy()
copyvilles = [Link]() # définition de la liste copyvilles en utilisant la fonction copy
print(copyvilles) # renvoie [’Paris’, ’Berlin’, ’Londres’, ’Bruxelles’]
Villes [1]="Casa"
print(copyvilles) # renvoie [’Paris’, ’Berlin’, ’Londres’, ’Bruxelles’]

Utilisation de la fonction list()


copyvilles = list(Villes) # définition de la liste copyvilles en utilisant la fonction list()
print(copyvilles) # renvoie [’Paris’, ’Berlin’, ’Londres’, ’Bruxelles’]
Villes [1]="Casa"
print(copyvilles) # renvoie [’Paris’, ’Berlin’, ’Londres’, ’Bruxelles’]

October 24, 2024 71 / 164


Les listes

∏ Les opérations sur les listes


F Faire la copie d’une liste
Utilisation de l’opérateur de slicing [ :]
copyvilles = villes[ : ] # définition de la liste copyvilles en utilisant l’opérateur de slicing
print(copyvilles) # renvoie [’Paris’, ’Berlin’, ’Londres’, ’Bruxelles’]
villes [1]="Casa"
print(copyvilles) # renvoie [’Paris’, ’Berlin’, ’Londres’, ’Bruxelles’]

Utilisation de la boucle for et de la fonction append()


copyvilles = [] # Création d’une liste vide
for indice in range(len(villes)):
[Link](villes[indice])
print(copyvilles) # renvoie [’Paris’, ’Berlin’, ’Londres’, ’Bruxelles’]

October 24, 2024 72 / 164


Les listes

∏ Les opérations sur les listes


F Faire la copie d’une liste
fonction deepcopy()
 deepcopy() est une fonction avancée appartenant au module copy qui permet de faire
les copies des objets python. On peut donc utiliser cette fonction pour la copie d’une liste.
Toutefois, pour l’utiliser, il faut d’abord importer le module copy comme suit :
import copy
copyvilles = [Link](villes)
print(copyvilles) # renvoie [’Paris’, ’Berlin’, ’Londres’, ’Bruxelles’].

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]).

October 24, 2024 73 / 164


Les listes
∏ Les opérations sur les listes
F Combiner les éléments de deux listes pour former une liste de couple d’éléments:
Fonction zip()
 Cette fonction permet de combiner les éléments de deux listes en formant une liste de
couple formés par les éléments de même indice:
Soit deux listes définies par:
Villes1=[’Paris’, ’Berlin’] et Villes2= [’Londres’, ’Bruxelles’]
Zipvilles= list( zip(Villes1, Villes2)) #renvoie [(’Paris’, ’Londres’), (’Berlin’, ’Bruxelles’) ].
 Le résultat renvoyé par zip() est une liste de tuples tout comme pour enumerate()

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.

October 24, 2024 74 / 164


Les listes

π Traitement des listes par les fonctions map(), filter() et reduce()

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:

def map(f, Inputlist):


Outputlist = [ ]
for x in Inputlist:
[Link](f(x))
return OutputList

October 24, 2024 75 / 164


Les listes

π Traitement des listes par les fonctions map(), filter() et reduce()

F Fonction map()
Considérant la liste : Villes=["Paris", "Berlin", "Londres", "Bruxelles" ]

Exemple 1: Déterminer la longueur de chaque mot dans une liste de mots:


Result=list(map(len,Villes))
print(Result) #renvoie [5, 6, 7, 9]. .

Exemple 2: Convertir les éléments d’une liste de chaine de caractères en minuscule


ou en majuscule:
VillesMinuscule=list(map([Link], Villes)) # convertir en minuscule
VillesMajuscule=list(map([Link], Villes)) # convertir en majuscule

October 24, 2024 76 / 164


Les listes

π Traitement des listes par les fonctions map(), filter() et reduce()

F Fonction map()

¿ Exercice d’application :

Calculer la racine carrée des éléments d’une liste définie par listnum=[4,8,9]

October 24, 2024 77 / 164


Les listes

π Traitement des listes par les fonctions map(), filter() et reduce()

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]

October 24, 2024 78 / 164


Les listes
π Traitement des listes par les fonctions map(), filter() et reduce()

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:

October 24, 2024 79 / 164


Les listes
π Traitement des listes par les fonctions map(), filter() et reduce()

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’]

October 24, 2024 80 / 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 dans la liste "Villes" dont la longueur est
supérieure à une certaine valeur
fun= lambda x : len(x)>7
Result=list(filter(fun,Villes))
print(Result) # renvoie [’Bruxelles’]
√ Écrire un programme qui récupère les nombres impairs dans la liste "Listnum"
def impair(x):
if x %2 !=0:
return x
Impairlist=list(filter(impair,Listnum))
print(ImpairList) # renvoie [3, 13, 21]
October 24, 2024 81 / 164
Les listes
π Traitement des listes par les fonctions map(), filter() et reduce()

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().

October 24, 2024 82 / 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

Exemple 1: Les opérations mathématiques courantes


Maximum d’une liste
result=reduce(max, [10,1,13,28])
print(result)# renvoie 28
Somme des éléments d’une liste
import operator
result1=reduce([Link], [10,1,13,28])
print (result1)# renvoie 52

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

Exemple 2: Opérations sur les listes


Concaténation des listes
import operator
result=reduce([Link], [[8,9],[4,3],[ ],[6]], [ ])
print(result)# renvoie [8,9,4,3,6]

Jointure des éléments d’une liste


fun=lambda s,x: s+str(x)
result1=reduce(fun, [5,4,8,9],’nom ’)
print (result1)# renvoie ’nom 5489’

October 24, 2024 84 / 164


Les tuples

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.

F Création d’un tuple


tuple1=(15, 22, 33, 44, 1, 15) # Crée un tuple de valeurs numériques
tuple2= ("Paris", "Berlin", "Londres", "Bruxelles") # Crée un tuple de chaines de caractères
tuple3=("Paris", "Berlin", "Londres", 40, 50, "Bruxelles") # Crée un tuple de chaines de
caractères et de valeurs numériques
tuple4=tuple(range(2,14)) # tuple de valeur numériques entre 2 et 13
tuple5=tuple()

October 24, 2024 85 / 164


Les tuples

F Création d’un tuple


Remarque
Pour créer un tuple d’un seul élément, il faut utiliser une syntaxe avec une virgule définie
sous la (valeur_element,). Cela permet d’éviter l’ambiguïté avec la définition d’une
simple variable:
tuple6= (12,) # Crée un tuple constitué d’un seul élement 12
tuple7=(12) # crée une variable simple dont la valeur est 12
Noter aussi qu’il est possible d’en créer un tuple sans les parenthèses, dès lors que ceci
ne pose pas d’ambiguïté avec une autre expression telle que la création de variable avec
assignation parallèle. Exemple :
tuple8 = 7,8,9 # Crée un tuple dont les éléments sont 7, 8 et 9
x1, x2, x3=7,8,9 # Crée trois variables x1, x2 et x3 dont les valeurs sont respectivement
7, 8 et 9

October 24, 2024 86 / 164


Les tuples
F Indiçage des tuples (slicing):
Comme signalé précédemment, les éléments d’un tuple sont indicés mais ils ne sont pas
modifiables. Néanmoins, il est possible d’accéder aux éléments, les extraire pour d’autres
utilisations (créations de variables simples, de listes, ou de nouvelles tuples, etc..). Le slicing
d’un tuple se fait de la même manière que dans une liste. Les exemples ci-dessous sont des
illustrations:
tuple1=("Paris", "Berlin", "Londres",40,50 , "Bruxelles")
tuple1[i] #renvoie l’élément d’indice i
tuple1[i:j] # renvoie tous éléments compris entre l’indice i et l’indice j (Nb : l’élément
d’indice j est exclu)
tuple1[i:j:p] # renvoie tous éléments compris entre l’indice i et l’indice j avec un saut de p
éléments à chaque fois.
tuple1[i:] # renvoie tous éléments à partir de l’élément d’indice i (inclu).
tuple1[:j] # renvoie tous éléments situés avant l’élément d’indice j (exclu).
tuple1[-1] # Indiçage négatif, renvoie le dernier élément du tuple.
tuple1[-2] # Indiçage négatif, renvoie l’avant-dernier élément du tuple.
October 24, 2024 87 / 164
Exercice d’application

É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)]

Le programme doit afficher :


matthieu a obtenu la meilleure note 16/20
mathilde a obtenu la plus faible note 10/20

October 24, 2024 88 / 164


Exercice d’application

Réponse :

students = [("jérémy", 12), ("mathilde", 10), ("matthieu", 16), ("géraldine", 14)]


student_min = students [0]
student_max =students [0]
for student in students:
if student_min [1] > student [1]:
student_min = student
elif student_max [1] < student [1]:
student_max = student
print ( "%s a obtenu la meilleure note %d/20." % student_max)
print("%s a obtenu la plus mauvaise note %d/20." % student_min)

October 24, 2024 89 / 164


Les set ou les ensembles

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

October 24, 2024 90 / 164


Les set ou les ensembles

 Les exemples ci-dessous illustrent quelques définitions de set.

set1={10, 12, 3, 2, 3, 8, 12, 5, 8, 31, 8}


# Crée un set de valeurs numériques en supprimant les doublons de 3 et de 8
mylist={’Paris’, ’Berlin’, ’Londres’, ’Bruxelles’, ’Paris’, ’Bruxelles’}
# set de chaines de caractères en supprimant le doublon Paris et Bruxelles
set2=set(myList) # Crée un set à partir d’une liste
set3=set() # Crée un set vide

October 24, 2024 91 / 164


Array

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

F Création d’un array:


Définition d’un array à 1 dimension
import numpy # Importe le module numpy pour pouvoir utiliser la fonction array()
List= [5,2,7, 4, 14, 10]
Tuple= (1,8,7, 5, 7, 10)
Array1= [Link](List)
Array2= [Link](Tuple)
October 24, 2024 92 / 164
Array

F Création d’un array:

Définition d’un array à 1 dimension


import numpy # Importe le module numpy pour pouvoir utiliser la fonction array()
Array3=[Link](10)
Array4=[Link](i,j, k) Array de séquence numérique compris entre i et j avec un pas de
k

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.

October 24, 2024 93 / 164


Array

F Création d’un array:


Définition d’un array à 1 dimension

Exemple 2: Opérations sur les listes


Soit le array y défini par: y=[Link](4) # renvoie array([0, 1, 2, 3])
y+1 # renvoie array([1, 2, 3, 4])
y*2 # renvoie array([0, 2, 4, 6])
y*y # renvoie array([0, 1,4,9])

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

October 24, 2024 94 / 164


Array

F Création d’un array:


Définition d’un array à plusieurs dimensions
Comme pour les listes, un array à deux dimensions se définit simplement comme array de
array c’est-à-dire un array dont les éléments individuels sont constitués par des arrays.
¨ Array à deux dimensions:
Pour créer un array à deux dimensions à partir d’une liste, il suffit de passer en argument une
liste de listes à la fonction array(). Exemple :
List= [[1,2,3],[2,3,4],[3,4,5]] # définition d’une liste de listes
array1=[Link](List) # Définition d’un array d’array.
¨ Array à trois dimensions:
On peut aussi créer des tableaux à trois dimensions en passant à la fonction array() une liste
de listes de listes:
List=[[[1,2],[2,3]],[[4,5],[5,6]]] # définition d’une liste de listes de listes
array2=[Link](List) # Définition d’un array d’array d’array (array à 3 dimensions).

October 24, 2024 95 / 164


Array

F Indiçage d’un array (slicing):


L’indiçage d’un array se fait de la même manière que dans le cas d’une liste.
Cas d’un array à une dimension: array1 = [Link](10)
array1[1] : # renvoie l’élément d’indice 1 (correspond ici à 1)
array1[6:] : # renvoie tous les éléments à partir de l’élément d’indice 6, ici array([ 6, 7, 8, 9])
array1[: : 2] : # renvoie tous les éléments avec un saut de 2 élements à chaque fois array([0,
2, 4, 6, 8])
Cas d’un array à deux dimensions: array2= [Link]([[1,2],[3,4]])
array2[0,:] : # Sélectionne tous les éléments de l’array qui a l’indice 0 dans les arrays de
second niveau, renvoie array([1, 2])
array2[:,0] : # sélectionne tous les éléments se trouvant à l’indice 0 dans les array de second
niveau, renvoie array([1, 3])
array2 [1,1] : # Sélectionne l’élément d’indice 1 de l’array qui a l’indice 1 dans la liste des
array de second niveau, renvoie 4

October 24, 2024 96 / 164


Array

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.

October 24, 2024 97 / 164


Array

F Opérations sur les arrays


Création d’un array matriciel rempli de 0 ou 1: fonctions zeros() et ones()
[Link]((3,3)) # Crée un array matriciel de dimension 3x3 rempli de 0 (de type float)
[Link]((3,3),int) # Crée un array matriciel de dimension 3x3 rempli de 0 (de type integer)
[Link]((3,3))# Crée un array matriciel de dimension 3x3 rempli de 1 (de type float)
[Link]((3,3), int) # Crée un array matriciel de dimension 3x3 rempli de 1 (de type int)

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.

October 24, 2024 98 / 164


Array

F Opérations algébriques (matricielles) sur les arrays

array1 = [Link]([Link](4),(2,2)) # génère un array matriciel


y=[Link](array1,array1) # renvoie le produit matriciel.
[Link](array1) # renvoie l’inverse de la matrice array1
[Link](array1) # renvoie le déterminant de la matrice array1
[Link](array1) # renvoie un tuple dont le premier correspond aux valeurs propres
et le second élément aux vecteurs propres.

October 24, 2024 99 / 164


Dictionnaire

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}

October 24, 2024 100 / 164


Dictionnaire

F Accéder aux éléments d’un dictionnaire (slicing)


Slicing d’un dictionnaire dans le cas d’une clé à valeur unique:
Soit le dictionnaire défini comme suit :
diction1= {’nom’ : ’Jean’, ’age’ : 21, ’poids’ : 54, ’taille’ : 1.70}
diction[’nom’] # renvoie Jean
diction[’age’] # renvoie 21
diction[’taille’] # renvoie 1.70
Slicing d’un dictionnaire dans le cas d’une clé à plusieurs valeurs:
Soit le dictionnaire défini comme suit :
diction2= {’Jean’ : [25, 70, 1.75], ’Paul’ : [30, 65, 1.80], ’Pierre’ : [35, 75, 1.65]}
diction2[’Jean’] # renvoie [25, 70, 1.75]
diction2[’Jean’][0] # renvoie 25
diction2[’Jean’][0:2] # renvoie [25,70]

October 24, 2024 101 / 164


Dictionnaire

F Modification de dictionnaire : ajout et suppression de clés ou de valeurs


.
Ajout ou modification de clés ou de valeurs
diction= {} # Crée un dictionnaire vide. On pouvait aussi utiliser x=dict():
diction[’nom’] = ’Jean’ # ajoute la clé-valeur nom et Jean au dictionnaire diction initial
diction[’biométrie’] = [25,70,1.75] # ajoute la clé-valeur biométrie et [25,70,1.75] au
dictionnaire
diction[’biométrie’] = [30,70,1.80] # modifie les éléments des indices 0 et 2 de la liste de
valeur qui correspond à la clé biométrie (préalabelemnt définie)
diction[’biométrie’][0] = 2 # modifie les valeurs de la clé biométrie en effectuant une nouvelle
définition

October 24, 2024 102 / 164


Dictionnaire

F Modification de dictionnaire : ajout et suppression de clés ou de valeurs


.
Suppression de clés ou de valeurs dans un dictionnaire
diction= {’Jean’ : [25, 70, 1.75], ’Paul’ : [30, 65, 1.80], ’Pierre’ : [35, 75, 1.65]}
del diction[’Jean’] # Supprime la clé Jean et toutes les valeurs correspondantes
del diction[’Jean’][0] # Supprime l’élément d’indice 0 dans la séquence de valeur correspondant
à la clé Jean. Pour une clé à une seule valeur, on utilise del x[’nomCle’]
où nomCle est le nom de la clé qui a la valeur unique
Renommer une clé dans un dictionnaire
diction= {’Jean’ : [25, 70, 1.75], ’Paul’ : [30, 65, 1.80], ’Pierre’ : [35, 75, 1.65]}
diction[’John’]=[Link](’Jean’)

October 24, 2024 103 / 164


Dictionnaire

F Modification de dictionnaire : ajout et suppression de clés ou de valeurs


.
Tester l’existence d’une clé dans un dictionnaire : la fonction in
’Paul’ in diction # renvoie True (car Paul est parmi les clés de diction)
’Sebastien’ in diction # renvoie False
’Sebastien’ not in diction # renvoie True
’Jean’ not in diction # renvoie False
if ’Paul’ in diction:
print("Oui, Paul est bien une clé dans le dictionnaire x")
else:
print("Non, Paul n’est pas une clé dans le dictionnaire x")

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

Tuples, listes et ensembles Dictionnaires


mytuple = (1, 2, 3) mydict = {1:’a’, 2:’b’, 3:’c’}
for item in mytuple: for k, v in [Link] ():
print(item) print("%i:%s" % (k, v))
mylist = [1, 2, 3] for k in [Link] ():
for item in mylist: print(k)
print(item)
for v in [Link] ():
myset = {1, 2, 3} print(v)
for item in myset:
print(item)

October 24, 2024 105 / 164


Chapitre 4
Fichiers

October 24, 2024 106 / 164


Lecture dans un fichier

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.

October 24, 2024 107 / 164


Lecture dans un fichier

F Méthode .readlines()

filin = open("[Link]", "r")


 La fonction open() ouvre le fichier [Link]. Ce fichier est ouvert en lecture seule,
comme l’indique le second argument r (pour read) de open()
L’affichage de la variable filin donne
<_io.TextIOWrapper name=’[Link]’ mode=’r’ encoding=’UTF-8’>
 Lorsqu’on affiche le contenu de la variable filin, on se rend compte que Python la
considère comme un objet de type fichier ouvert .
[Link]() affiche
[’girafe\n’, ’tigre\n’, ’singe\n’, ’souris\n’]
 La mé[Link]() agit sur l’objet filin, déplace le curseur de lecture du début à
la fin du fichier, et renvoie une liste de toutes les lignes du fichier.
[Link]() : permet de fermer le fichier

October 24, 2024 108 / 164


Lecture dans un fichier
F Méthode .readlines()

Voici maintenant un exemple complet de lecture d’un fichier avec Python :


filin = open("[Link]", "r")
lignes=[Link]()
print(lignes)
[’girafe\n’, ’tigre\n’, ’singe\n’, ’souris\n’]

for ligne in lignes:


print(ligne)
girafe
tigre
singe
souris
[Link]()
October 24, 2024 109 / 164
Lecture dans un fichier

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.

October 24, 2024 110 / 164


Lecture dans un fichier
F Méthode .readlines()
Le mot-clé "with" en Python permet d’ouvrir et de fermer un fichier efficacement,
assurant sa fermeture même en cas d’erreur. Voici le même exemple utilisant with :
with open("[Link]", ’r’) as filin:
lignes = [Link]()
for ligne in lignes:
print(ligne)

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.

October 24, 2024 111 / 164


Lecture dans un fichier

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 :

with open("[Link]", ’r’) as filin:


[Link]()
’girafe\ntigre\nsinge\nsouris\n’

October 24, 2024 112 / 164


Lecture dans un fichier
F Méthode .readline()

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:

with open("[Link]", ’r’) as filin:


ligne=[Link]()
while ligne !=" "
print(ligne)
ligne=[Link]()
girafe
tigre
singe
souris
October 24, 2024 113 / 164
Lecture dans un fichier

F Itérations directes sur le fichier

Python cherche à rendre les choses aussi simples que possible. Voici une méthode à la
fois élégante et efficace pour parcourir un fichier:

with open("[Link]", ’r’) as filin:


for ligne in filin:
print(ligne)
girafe
tigre
singe
souris
 L’objet filin est « itérable », ainsi la boucle for va demander à Python d’aller lire le fichier
ligne par ligne.

October 24, 2024 114 / 164


Ecriture dans un fichier

Écrire dans un fichier est aussi simple que de le lire. Voyez l’exemple suivant :

animaux1 = ["poisson", "chien", "chat"]


% Création d’une liste de chaînes de caractères animaux1
with open("[Link]", ’w’) as filout:
% Ouverture du fichier [Link] en mode écriture, avec le caractère w
pour write. L’instruction with crée un bloc d’instructions qui doit être indenté.
for animal in animaux1:
% Parcours de la liste animaux2 avec une boucle for.
[Link](animal)
% À chaque itération de la boucle, nous avons écrit chaque élément de la
liste dans le fichier. La méthode .write() s’applique sur l’objet filout.
 En ouvrant le fichier [Link] avec un éditeur de texte, voici ce que nous obtenons:
poissonchienchat
October 24, 2024 115 / 164
Ecriture dans un fichier

 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 :

animaux1 = ["poisson", "chien", "chat"]


with open("[Link]", ’w’) as filout:
for animal in animaux1:
[Link](f" {animal}\n)

October 24, 2024 116 / 164


Ouvrir deux fichiers avec l’instruction with

 On peut avec l’instruction with ouvrir deux fichiers (ou plus) en même temps. Voyez l’exemple
suivant:

with open("[Link]", ’r’) as fichier1, with open("[Link]", ’w’) as fichier2:


for ligne in fichier1:
[Link](" * "+ ligne)

Si le fichier [Link] contient le texte suivant : ‡ alors le contenu de [Link] sera :

souris * souris
girafe * girafe
lion * lion
singe * singe

October 24, 2024 117 / 164


Chapitre 5
Modules

October 24, 2024 118 / 164


Définition

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).

October 24, 2024 119 / 164


Importation de modules

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:

¨ import random ≠ import math


[Link](0, 10) [Link]([Link] / 2)

 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:

Æ from random import randint Ø from random import *


randint(0, 10) randint(0, 10)
uniform(0,2.5)

 la fonction uniform renvoie un nombre float tiré aléatoirement.

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.

October 24, 2024 121 / 164


Importation de modules

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

October 24, 2024 124 / 164


Module random : génération de nombres aléatoires

Z Comme mentionné précédemment, le module random offre des fonctions permettant de


générer des nombres aléatoires.
import random
[Link](0,10)
Z Le module random permet aussi :
¨ de permuter aléatoirement des listes ::
Liste = [1, 2, 3, 4]
[Link]ffle(L)
print(L) ‡ affiche par exemple L=[2, 3, 1, 4]
≠ de tirer aléatoirement un élément dans une liste donnée:
bases = ["A", "T", "C", "G"]
[Link](bases)
 affiche par exemple ’A’
[Link](bases)
 affiche par exemple ’G’
October 24, 2024 125 / 164
Module random : génération de nombres aléatoires

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" ]

October 24, 2024 126 / 164


Module random : génération de nombres aléatoires

Z Utilisation de la graine aléatoire pour assurer la reproductibilité des analyses scientifiques


(‡ générer les mêmes résultats)
 En Python, la graine aléatoire se définit avec la fonction seed() :
[Link](42)
[Link](0, 10)
 affiche par 1 après plusieurs exécutions
Remarque
Lorsqu’on utilise des nombres aléatoires, il est essentiel de connaître la distribution de
probabilité associée à la fonction utilisée.
Par exemple, la fonction [Link]() du module random renvoie un flottant aléatoire
compris entre 0 et 1, suivant une distribution uniforme. En répétant de nombreux tirages,
tous les nombres possibles entre 0 et 1 auront la même probabilité d’être sélectionnés. De
même, [Link]() génère un entier dans une distribution uniforme. En revanche,
[Link]() produit un flottant aléatoire selon une distribution gaussienne.
October 24, 2024 127 / 164
Module sys : passage d’arguments

Le module sys fournit des fonctions et variables spécifiques à l’interpréteur Python.


Il est particulièrement utile pour accéder aux arguments transmis à un script Python lors de son
exécution en ligne de commande.
Prenons l’exemple suivant d’un script à enregistrer sous le nom [Link] :
import sys
print([Link])
Ensuite, dans un shell, exécutons le script [Link] suivi de plusieurs arguments
$ python [Link] salut girafe 42
 affiche le contenu de la variable [Link] sous forme d’une liste qui contient
tous les arguments de la ligne de commande, y compris le nom du script Python lui-même qu’on
retrouve comme premier élément de cette liste dans [Link][0]. On peut donc accéder à chacun
des différents arguments du script avec [Link][1], [Link][2], etc.

October 24, 2024 128 / 164


Module sys : passage d’arguments

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.

October 24, 2024 129 / 164


Module sys : passage d’arguments
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.
À avec un seul argument :
$ python [Link] 42
 affiche Argument vaut : 42
à avec avec plusieurs :
$ python [Link] 42 salut
 affiche ERREUR : il faut exactement un argument.
October 24, 2024 130 / 164
Module sys : passage d’arguments

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.

October 24, 2024 131 / 164


Module sys : passage d’arguments
Exercice d’application:
Écrivez un script "compte_lignes.py" qui prend comme argument le nom d’un fichier puis affiche
le nombre de lignes qu’il contient :
Prenez par l’exemple un fichier nommé "[Link]" qui contient:
Tigre
Singe
Chat

October 24, 2024 132 / 164


Module sys : passage d’arguments
Exercice d’application:
Écrivez un script "compte_lignes.py" qui prend comme argument le nom d’un fichier puis affiche
le nombre de lignes qu’il contient :
Prenez par l’exemple un fichier nommé "[Link]" qui contient:
Tigre
Singe
Chat
import sys
if len([Link]) != 2:
[Link]("ERREUR : il faut exactement un argument.")
nom_fichier = [Link][1]
taille = 0
with open (nom_fichier, "r") as f_in:
taille = len(f_in.readlines())
print(f"{nom_fichier} contient {taille} lignes.")
October 24, 2024 132 / 164
Module pathlib : gestion des fichiers et des répertoires

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.

October 24, 2024 133 / 164


Module pathlib : gestion des fichiers et des répertoires
La méthode .cwd() renvoie le chemin complet du répertoire depuis lequel est lancé Python (cwd
signifiant current working directory) :
from pathlib import Path
Path().cwd()
 affiche : PosixPath(’/Users/jamal’)
On obtient un objet de type PosixPath qui permet d’obtenir le nom du répertoire (sans son chemin
complet) et le répertoire parent en utilisant les fonctions .name et .parent, respectivement:
Path().cwd().name
 affiche ’jamal’
Path().cwd().parent
 affiche PosixPath(’/Users’)
Il est possible de transformer l’objet de type PosixPath si besoin en chaîne de caractères avec la
fonction str(), que nous avons vu dans le chapitre 1 Variables :
str(Path().cwd().parent) ‡ affiche ’/Users’
October 24, 2024 134 / 164
Module pathlib : gestion des fichiers et des répertoires

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.

October 24, 2024 135 / 164


Module pathlib : gestion des fichiers et des répertoires
La méthode .iterdir() parcourt uniquement le contenu direct d’un répertoire sans explorer les
sous-répertoires. Pour effectuer une recherche récursive à travers un répertoire et ses sous-
dossiers, on utilise la méthode .glob(). Considérons l’exemple d’une arborescence suivante : :

[Link]

[Link]
.
[Link]

tests [Link]

[Link]

October 24, 2024 136 / 164


Module pathlib : gestion des fichiers et des répertoires
La méthode .iterdir() parcourt uniquement le contenu direct d’un répertoire sans explorer les
sous-répertoires. Pour effectuer une recherche récursive à travers un répertoire et ses sous-
dossiers, on utilise la méthode .glob(). Considérons l’exemple d’une arborescence suivante : :

[Link] Code pour lister tous les scripts Python présents


dans le répertoire courant et dans ses sous-
[Link] répertoires :
.
[Link] for nom in Path().glob("**/*.py"):
print(f"{nom}")
tests [Link] [Link]
tests/[Link]
tests/[Link]
[Link]
** recherche tous les sous-répertoires récursivement et *.py signifie n’importe quel nom de fichier
qui se termine par l’extension .py.
October 24, 2024 136 / 164
Création de modules
En Python, créer un module est très simple. Il suffit de regrouper un ensemble de fonctions
(et éventuellement des constantes) dans un fichier, puis de l’enregistrer avec l’extension .py,
comme pour tout autre script Python. Par exemple, nous allons créer un module basique que
nous nommerons [Link] :
DATE = "2024-09-05"

def bonjour(nom):
"""Dit Bonjour."""
return f"Bonjour {nom}"

October 24, 2024 137 / 164


Création de modules
En Python, créer un module est très simple. Il suffit de regrouper un ensemble de fonctions
(et éventuellement des constantes) dans un fichier, puis de l’enregistrer avec l’extension .py,
comme pour tout autre script Python. Par exemple, nous allons créer un module basique que
nous nommerons [Link] :
¨ Chargement du module
DATE = "2024-09-05"
import message
def bonjour(nom):
"""Dit Bonjour."""
return f"Bonjour {nom}"

October 24, 2024 137 / 164


Création de modules
En Python, créer un module est très simple. Il suffit de regrouper un ensemble de fonctions
(et éventuellement des constantes) dans un fichier, puis de l’enregistrer avec l’extension .py,
comme pour tout autre script Python. Par exemple, nous allons créer un module basique que
nous nommerons [Link] :
¨ Chargement du module
DATE = "2024-09-05"
import message
≠ Utilisation des fonctions du module
def bonjour(nom):
[Link]("Mohammed")
"""Dit Bonjour."""
 affiche ’Bonjour Moahmmed’
return f"Bonjour {nom}"
[Link]
 affiche ’2024-09-05’

October 24, 2024 137 / 164


Création de modules
En Python, créer un module est très simple. Il suffit de regrouper un ensemble de fonctions
(et éventuellement des constantes) dans un fichier, puis de l’enregistrer avec l’extension .py,
comme pour tout autre script Python. Par exemple, nous allons créer un module basique que
nous nommerons [Link] :
¨ Chargement du module
DATE = "2024-09-05"
import message
≠ Utilisation des fonctions du module
def bonjour(nom):
[Link]("Mohammed")
"""Dit Bonjour."""
 affiche ’Bonjour Moahmmed’
return f"Bonjour {nom}"
[Link]
 affiche ’2024-09-05’
Remarque
La première fois qu’un module est importé, Python crée un répertoire nommé __pycache__
contenant un fichier avec une extension .pyc qui contient le bytecode, c’est-à-dire le code pré-
compilé du module.
October 24, 2024 137 / 164
Création de modules: Help
import message
help(message)
 affiche :
Help on module message:
NAME
message
FUNCTIONS
bonjour(nom)
Dit Bonjour.
DATA
DATE = ’2024-01-05’
FILE
"/Users/jamal/Work/Courses/Cours_Python/Cours_python_Latex/
Démonstration_Modules/[Link]"

October 24, 2024 138 / 164


Création de modules: Help
import message
help(message)
 affiche :
Help on module message:
NAME
message
FUNCTIONS
bonjour(nom)
Dit Bonjour.
DATA
DATE = ’2024-01-05’
FILE
"/Users/jamal/Work/Courses/Cours_Python/Cours_python_Latex/
Démonstration_Modules/[Link]"
‡ Pour quitter l’aide, pressez la touche Q.
October 24, 2024 138 / 164
Création de modules: Module ou script?

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 !!!!!

October 24, 2024 139 / 164


Création de modules: Module ou script?

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.

October 24, 2024 139 / 164


Création de modules: Module ou 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"))

October 24, 2024 140 / 164


Création de modules: Module ou 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): H Si on l’importe dans l’interpréteur, on obtient :


"""Dit Bonjour.""" import message1
return f"Bonjour {nom}" Bonjour Mohammed

# Programme principal.
print(bonjour("Mohammed"))

October 24, 2024 140 / 164


Création de modules: Module ou 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): H Si on l’importe dans l’interpréteur, on obtient :


"""Dit Bonjour.""" import message1
return f"Bonjour {nom}" Bonjour Mohammed

# 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.

October 24, 2024 140 / 164


Création de modules: Module ou script?

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"))

October 24, 2024 141 / 164


Création de modules: Module ou script?

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"))

October 24, 2024 141 / 164


Création de modules: Module ou script?

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"))

October 24, 2024 141 / 164


Création de modules: Module ou script?

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"))

October 24, 2024 141 / 164


Création de modules: Module ou script?

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

October 24, 2024 141 / 164


Création de modules: Module ou script?

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:

October 24, 2024 142 / 164


Chapitre 6
Étude des Fonctions

October 24, 2024 143 / 164


Fonctions prédéfinies en python : print() et input()

∂ 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 =” )

October 24, 2024 144 / 164


Fonctions prédéfinies en python : print() et input()
∑ Fonction print()
La fonction input permet de donner la main à l’utilisateur afin qu’il saisisse la valeur d’un
argument donné.
Exemples
prenom = input("Entrez votre prénom :")
print("Bonjour ", prenom)
ch = input()
num = int(ch) # conversion de la chaîne en un nombre entier
print("Le carré de ", num,"vaut", num**2 )

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().

October 24, 2024 145 / 164


Fonctions définies par l’utilisateur

Définition d’une fonction


Pour définir une fonction en Python, on utilise le mot clé def pour déclarer le nom de la fonction.
La syntaxe générale de définition d’une fonction est la suivante :
def nomDeLaFonction(arg1, arg2, ..., argN):
bloc d’instructions

∂ Définition d’une fonction simple sans argument


L’exemple ci-dessous illustre la définition def tableMultiplication6():
d’une fonction simple sans argument. Le n=1
but de la fonction est d’afficher les 20 pre- while n <= 20 :
mières valeurs de la table de multiplication v=n*6
par 6. print (n, ’x’, 6, ’=’, v, sep =’ ’)
n = n +1

October 24, 2024 146 / 164


Fonctions définies par l’utilisateur

∂ Définition d’une fonction simple sans argument

Signalons aussi qu’on pouvait aussi def tableMultiplication6():


définir la fonction tableMultiplication6() à for n in range(1, 21) :
partir d’une boucle for. Dans ce cas, la v=n*6
fonction se présenterait comme suit : print (n, ’x’, 6, ’=’, v, sep =’ ’)

tableMultiplication6() # appelle la fonction tableMultiplication6()

October 24, 2024 147 / 164


Fonctions définies par l’utilisateur

∂ Définition d’une fonction simple sans argument

Signalons aussi qu’on pouvait aussi def tableMultiplication6():


définir la fonction tableMultiplication6() à for n in range(1, 21) :
partir d’une boucle for. Dans ce cas, la v=n*6
fonction se présenterait comme suit : print (n, ’x’, 6, ’=’, v, sep =’ ’)

tableMultiplication6() # appelle la fonction tableMultiplication6()


Ces exemples montrent donc que la boucle while et for sont alternatives dans de nombreuses
situations.

October 24, 2024 147 / 164


Fonctions définies par l’utilisateur
∑ Définition d’une fonction dont les arguments sont des paramètres
Il s’agit de définir une fonction dont
def tableMultiplication(base):
les arguments sont des paramètres. Voir
n=1
l’exemple ci-dessous:
while n <= 20 :
v=n*base
print (n, ’x’, 6, ’=’, v, sep =’ ’)
n = n +1

∏ Définition d’une fonction dont les arguments sont des variables


Il s’agit de définir une fonction dont les
arguments sont des variables. Pour que x=4
l’argument base se comporte comme une while x <= 20:
variable, on va l’attribuer plusieurs valeurs tableMultiplication(x)
à l’intérieur d’une nouvelle boucle « while print (" ") # insérer un espace entre deux tables
» ou « for ».Voir l’exemple ci-dessous x = x +1

October 24, 2024 148 / 164


Fonctions définies par l’utilisateur

π Définition d’une fonction à plusieurs argumentss

def tableMultiplication(base, debut, fin):


n = debut
while n <= fin :
v=n*base
print (n, ’x’, base, ’=’, v, sep =’ ’)
n = n +1

Remarque
Les arguments peuvent être des paramètres ou des variables en utilisant une boucle lors de
l’exécution de la fonction.

October 24, 2024 149 / 164


Fonctions définies par l’utilisateur
∫ Définition des valeurs par défaut pour les arguments d’une fonction
Lorsque la fonction salutation est appelée avec seulement
def salutation(nom, l’argument nom (omettant l’argument), la fonction ren-
titre=’Monsieur’): voie la valeur par défaut Monsieur. Exemple :
print (’Bonjour’, titre, nom) salutation(’Pierre’) # renvoie Bonjour Monsieur Pierre

October 24, 2024 150 / 164


Fonctions définies par l’utilisateur
∫ Définition des valeurs par défaut pour les arguments d’une fonction
Lorsque la fonction salutation est appelée avec seulement
def salutation(nom, l’argument nom (omettant l’argument), la fonction ren-
titre=’Monsieur’): voie la valeur par défaut Monsieur. Exemple :
print (’Bonjour’, titre, nom) salutation(’Pierre’) # renvoie Bonjour Monsieur Pierre

‡ 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

October 24, 2024 150 / 164


Fonctions définies par l’utilisateur
∫ Définition des valeurs par défaut pour les arguments d’une fonction
Lorsque la fonction salutation est appelée avec seulement
def salutation(nom, l’argument nom (omettant l’argument), la fonction ren-
titre=’Monsieur’): voie la valeur par défaut Monsieur. Exemple :
print (’Bonjour’, titre, nom) salutation(’Pierre’) # renvoie Bonjour Monsieur Pierre

‡ 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

Contrairement à la plupart des langages de program-


mation, Python fait l’exception concernant l’ordre def salutation(nom, titre):
des arguments. En effet, on peut faire appel à la print (’Bonjour’, titre, nom)
fonction en fournissant les arguments correspondants
dans n’importe quel ordre, à condition de spécifier
nommément les paramètres correspondants tout en
assignant les valeurs.

October 24, 2024 151 / 164


Fonctions définies par l’utilisateur
ª Ordre des arguments lors de l’appel d’une fonction

Contrairement à la plupart des langages de program-


mation, Python fait l’exception concernant l’ordre def salutation(nom, titre):
des arguments. En effet, on peut faire appel à la print (’Bonjour’, titre, nom)
fonction en fournissant les arguments correspondants
dans n’importe quel ordre, à condition de spécifier
nommément les paramètres correspondants tout en
assignant les valeurs.

‡ Pour appeler cette fonction dans un ordre quelconque on fait :


salutation(titre=’Mademoiselle’, nom=’Dupont’).
 renvoie Bonjour Mademoiselle Dupont
salutation(nom=’Dupont’, titre=’Mademoiselle’)
 renvoie Bonjour Mademoiselle Dupont
October 24, 2024 151 / 164
Fonctions définies par l’utilisateur
º Fonction lambda

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)

Exemple: lambda x, y: x*y

October 24, 2024 152 / 164


Fonctions définies par l’utilisateur
º Fonction lambda

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.

October 24, 2024 153 / 164


Variables locales et globales

A l’intérieur de la fonction p est une


Soit la fonction myFunction définie comme suit :
variable locale tandis que à l’extérieur
def myFunction(): (programme principal) il est considéré
p = 20 comme une variable globale. Au final,
print(p, q) on retient donc qu’une fonction renverra
p = 15 toujours la valeur d’une variable en pri-
q = 38 orité par rapport à une variable globale
print(p, q) mais la valeur de cette dernière ne sera
 renvoie 15 38 pas modifiée.
myFunction() # appelle la fonction,
 renvoie r 20 38
print(p, q)
 renvoie 15 38

October 24, 2024 154 / 164


Variables locales et globales

On peut modifier ce comportement par def myFunction():


défaut en permettant à la fonction de mod- global p:
ifier la valeur de la variable globale. Dans ce p = 20
cas, il faut explicitement définir la variable print(p, q)
comme global à l’intérieur de la fonction. p = 15
Exemple: q = 38
print(p, q)
 renvoie 15 38
myFunction() # appelle la fonction,
 renvoie r 20 38
print(p, q)
 renvoie 20 38

October 24, 2024 155 / 164


Renvoie d’une fonction: Instruction return
Le résultat renvoyé par une fonction peut être de différents types (variable, liste, tuple,
etc.). L’instruction return permet de renvoyer la valeur associée. Elle est généralement utilisée
à l’intérieur des fonctions, qu’elles soient classiques ou lambda
u Renvoie d’une valeur unique u Renvoie d’un ensemble de valeurs

def calculCube(x): def tableMultiplication(base):


cube = x**3 listeValeurs = [ ] , n = 1
print(cube) while n <= 10:
return cube v = n * base
[Link](v)
x = calculCube(5)
n = n +1
print(x)
return listeValeurs
 renvoie 125
x = tableMultiplication(9)
print(x)
 renvoie [9, 18, 27, 36, 45, 54, 63, 72, 81, 90]
October 24, 2024 156 / 164
Utilisation des générateurs de fonction : Instruction yield
yield est un mot clé qui représente une instruction de même type que le mot clé return, à la
seule différence que return renvoie une valeur ou un ensemble de valeurs alors que l’instruction
yield renvoie un générateur.
Pour mieux comprendre la logique de l’instruction yield, prenons un exemple d’une fonction
qui renvoie (avec return) une liste des carrés de tous les éléments entre 2 et 10:

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

Proposons une nouvelle définition de la fonction myFunction en utilisant l’instruction yield.


On a:

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 :

x= [] # Définir une liste vide qui doit accueillir les résultats


for i in myGenerator :
[Link](i)
print(x)
 renvoie [4, 9, 16, 25, 36, 49, 64, 81, 100]

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 :

val = float(input("Veuillez saisir un nombre :"))

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.

October 24, 2024 160 / 164


Gestion des erreurs et des exceptions : Blocs try-except

En Python, les instructions pouvant


générer des exceptions sont placées dans
un bloc try, tandis que les traitements
d’erreur sont définis dans un bloc except
Cela permet au programmeur de gérer les try:
erreurs et de définir des actions spécifiques instructions
en cas d’exception. Un ensemble try- except ErrorType1:
except s’écrira de la forme : instructions si ErrorType1
except ErrorType2 :
instructions si ErrorType2
except (ErrorType3, ErrorType4):
instructions si ErrorType3 ou ErrorType4
except:
instructions si autre erreur
October 24, 2024 161 / 164
Etude des fonctions

=) Gestion des erreurs et des exceptions lors de la définition d’une fonction :


Les exemples présentés ci-après illustrent l’utilisation de des blocs try et except.
Exemple 1: Demander à l’utilisateur de saisir des valeurs et lui redemander une nouvelle
fois la saisie afin qu’il entre une valeur convenable.
try:
val = float(input("Veuillez saisir un nombre :"))
except ErrorType1:
print ("La valeur entrée n’est pas valide")
val = float(input("Veuillez recommencer s’il vous plaît:"))

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

October 24, 2024 162 / 164


Etude des fonctions

=) Gestion des erreurs et des exceptions lors de la définition d’une fonction :


Les exemples présentés ci-après illustrent l’utilisation de des blocs try et except.
On peut améliorer le code de sorte que la fonction donne la main à l’utilisateur autant de fois
que nécessaire jusqu’à ce qu’il saisisse une valeur valide. L’exemple ci-dessous est une illustration
test="Pas ok"
while(test!="ok")
try:
val = float(input("Veuillez saisir un nombre :"))
test="ok"
except ErrorType1:
print("La valeur entrée n’est pas valide, Veuillez recommenccer")

October 24, 2024 163 / 164

Vous aimerez peut-être aussi