É COLE P OLYTECHNIQUE DE O UAGADOUGOU (EPO)
Algorithme et programmation 2 (avec python)
Dr. Zakaria Sawadogo
[Link]@[Link]
17 mars 2025
Plan du cours
Les instructions de contrôle de flux
L’instruction break
L’instruction continue
Les tableaux (Liste) et Tuples
Les tableaux (Liste)
Les tuples en Python
La fonction zip
Chaîne de caractères (string)
Introduction aux Fonctions en Python
Notion de variables locales et variables globales
Les fonctions recursive
Les dictionnaires en Python
Lecture et Ecriture dans un fichier
Lecture de fichier
Écriture de fichier
2 on 69
Les instructions de contrôle de flux
Plan du cours
Les instructions de contrôle de flux
L’instruction break
L’instruction continue
Les tableaux (Liste) et Tuples
Introduction aux Fonctions en Python
Les dictionnaires en Python
Lecture et Ecriture dans un fichier
3 on 69
Les instructions de contrôle de flux L’instruction break
L’instruction break
L’instruction break
L’instruction break en Python est une instruction de contrôle de flux
qui permet de sortir prématurément d’une boucle (for ou while).
Lorsqu’elle est rencontrée à l’intérieur d’une boucle, elle interrompt
immédiatement l’exécution de la boucle et transfère le contrôle à la
première instruction suivant la boucle.
4 on 69
Les instructions de contrôle de flux L’instruction break
L’instruction break
L’instruction break
■ Utilisation dans les boucles : break est principalement utilisée à
l’intérieur des boucles for et while.
■ Interruption immédiate : Lorsqu’elle est exécutée, elle met fin à
l’exécution de la boucle dans laquelle elle se trouve.
■ Transfert du contrôle : Après l’interruption, le contrôle est
transféré à la première instruction qui suit la boucle.
■ Boucles imbriquées : Si break est utilisée dans une boucle
imbriquée, elle interrompt seulement la boucle la plus interne
dans laquelle elle se trouve.
5 on 69
Les instructions de contrôle de flux L’instruction break
L’instruction break
L’instruction break
6 on 69
Les instructions de contrôle de flux L’instruction continue
L’instruction continue
L’instruction continue
L’instruction continue en Python est une instruction de contrôle de
flux qui permet de passer à l’itération suivante d’une boucle (for ou
while) sans exécuter le reste du code dans l’itération courante.
7 on 69
Les instructions de contrôle de flux L’instruction continue
L’instruction continue
L’instruction continue
Les points clés à retenir sur l’instruction continue :
■ Utilisation dans les boucles : continue est principalement
utilisée à l’intérieur des boucles for et while.
■ Passage à l’itération suivante : Lorsqu’elle est exécutée, elle
interrompt l’itération courante et passe directement à l’itération
suivante de la boucle.
■ Ignorance du code restant : Tout le code restant dans le bloc de
code de l’itération courante est ignoré.
■ Boucles imbriquées : Si continue est utilisée dans une boucle
imbriquée, elle affecte uniquement la boucle la plus interne
dans laquelle elle se trouve
8 on 69
Les instructions de contrôle de flux L’instruction continue
L’instruction continue
L’instruction continue
9 on 69
Les tableaux (Liste) et Tuples
Plan du cours
Les instructions de contrôle de flux
Les tableaux (Liste) et Tuples
Les tableaux (Liste)
Les tuples en Python
La fonction zip
Chaîne de caractères (string)
Introduction aux Fonctions en Python
Les dictionnaires en Python
Lecture et Ecriture dans un fichier
10 on 69
Les tableaux (Liste) et Tuples Les tableaux (Liste)
Les tableaux
Les tableaux
■ Les tableaux, appelés listes en Python, sont des structures de
données fondamentales.
■ Ils permettent de stocker une collection ordonnée d’éléments.
■ Les listes sont mutables, c’est-à-dire qu’on peut modifier leur
contenu.
■ Très flexibles, elles peuvent contenir des éléments de types
différents.
11 on 69
Les tableaux (Liste) et Tuples Les tableaux (Liste)
Les tableaux
Création d’une Liste
‘
12 on 69
Les tableaux (Liste) et Tuples Les tableaux (Liste)
Les tableaux
Accès aux Éléments
13 on 69
Les tableaux (Liste) et Tuples Les tableaux (Liste)
Les tableaux
Slicing (Tranchage)
14 on 69
Les tableaux (Liste) et Tuples Les tableaux (Liste)
Les tableaux
Slicing (Tranchage)
15 on 69
Les tableaux (Liste) et Tuples Les tableaux (Liste)
Les tableaux
Slicing (Tranchage)
16 on 69
Les tableaux (Liste) et Tuples Les tableaux (Liste)
Les tableaux
Slicing (Tranchage)
17 on 69
Les tableaux (Liste) et Tuples Les tableaux (Liste)
Les tableaux
Méthodes Utiles
■ append(element) : Ajoute un élément à la fin de la liste.
■ insert(index, element) : Insère un élément à un index donné.
■ remove(element) : Supprime la première occurrence d’un
élément.
■ pop(index) : Supprime et retourne l’élément à un index donné.
■ index(element) : Retourne l’index de la première occurrence
d’un élément.
■ count(element) : Retourne le nombre d’occurrences d’un
élément.
■ sort() : Trie la liste en place.
■ reverse() : Inverse la liste en place.
■ clear() : Supprime tous les éléments de la liste.
18 on 69
Les tableaux (Liste) et Tuples Les tuples en Python
Les tuples
Les tuples en Python
Les tuples en Python sont des structures de données similaires
aux listes, mais avec une différence cruciale : ils sont immuables.
Cela signifie qu’une fois qu’un tuple est créé, vous ne pouvez plus
modifier ses éléments, ni ajouter ni supprimer des éléments. Cette
caractéristique rend les tuples particulièrement utiles dans certains
contextes où l’intégrité des données est primordiale.
19 on 69
Les tableaux (Liste) et Tuples Les tuples en Python
Les tuples
Caractéristiques Principales
■ Immuables : Les tuples ne peuvent pas être modifiés après leur
création.
■ Ordonnés : Les éléments d’un tuple ont un ordre spécifique et
cet ordre est conservé.
■ Hétérogènes : Un tuple peut contenir des éléments de
différents types de données (entiers, flottants, chaînes de
caractères, etc.).
■ Indexés : Les éléments d’un tuple sont accessibles via des
indices, comme les listes, en commençant par 0 pour le
premier élément.
■ Définis avec des parenthèses : Les tuples sont généralement
définis en utilisant des parenthèses ().
20 on 69
Les tableaux (Liste) et Tuples Les tuples en Python
Les tuples
Création de Tuples
21 on 69
Les tableaux (Liste) et Tuples Les tuples en Python
Les tuples
Accès aux Éléments
22 on 69
Les tableaux (Liste) et Tuples Les tuples en Python
Les tuples
Opérations sur les Tuples
23 on 69
Les tableaux (Liste) et Tuples Les tuples en Python
Les tuples
Immuabilité
La principale caractéristique des tuples est leur immuabilité. Une
fois créé, vous ne pouvez pas modifier les éléments d’un tuple.
Les opérations suivantes ne sont pas autorisées :
■ montuple = 10 Erreur : TypeError : ’tuple’ object does not
support item assignment
■ [Link](6) Erreur : AttributeError : ’tuple’ object has
no attribute ’append’
■ del montuple Erreur : TypeError : ’tuple’ object doesn’t support
item deletion
24 on 69
Les tableaux (Liste) et Tuples Les tuples en Python
Les tuples
Quand Utiliser les Tuples ?
■ Les tuples sont particulièrement utiles dans les situations
suivantes :
■ Protection des données : Lorsque vous voulez garantir que les
données ne seront pas modifiées accidentellement.
■ Clés de dictionnaire : Les tuples peuvent être utilisés comme
clés dans les dictionnaires (contrairement aux listes car les clés
doivent être immuables).
■ Retour de plusieurs valeurs : Les fonctions peuvent retourner
plusieurs valeurs sous forme de tuple.
■ Performances : Les opérations sur les tuples peuvent être
légèrement plus rapides que sur les listes, car Python sait que
les tuples ne changeront pas.
25 on 69
Les tableaux (Liste) et Tuples La fonction zip
La fonction zip()
Fonctionnement
La fonction zip() en Python est utilisée pour combiner plusieurs ité-
rables (listes, tuples, etc.) en un seul itérable de tuples. Elle prend
en entrée une ou plusieurs séquences et renvoie un objet zip, qui
est un itérateur de tuples.
■ zip() associe les éléments correspondants de chaque itérable
en tuples.
■ L’itération s’arrête lorsque l’itérable le plus court est épuisé, les
éléments restants des itérables plus longs sont ignorés.
■ Pour obtenir une liste de tuples à partir de l’objet zip, on peut
utiliser la fonction list()
26 on 69
Les tableaux (Liste) et Tuples La fonction zip
La fonction zip()
Exemple
27 on 69
Les tableaux (Liste) et Tuples Chaîne de caractères (string)
Chaîne de caractères (string)
String
En Python, une chaîne de caractères, ou "string" en anglais, est
une séquence ordonnée de caractères. Ces caractères peuvent
être des lettres, des chiffres, des symboles, des espaces, etc. Les
chaînes de caractères sont utilisées pour représenter du texte.
■ Une chaîne de caractères est une séquence de caractères,
comparable à une phrase composée de mots .
■ Les chaînes de caractères sont essentielles, car elles
permettent de manipuler du texte, d’afficher des messages et
de traiter des entrées utilisateur.
■ Pour créer des chaînes de caractères, il faut placer les
caractères entre guillemets simples (’ ’) ou doubles (" ").
■ Pour un texte sur plusieurs lignes, utilisez des guillemets triples
(""" ou ”’").
28 on 69
Les tableaux (Liste) et Tuples Chaîne de caractères (string)
Chaîne de caractères (string)
Différences entre chaînes de caractères et autres types de don-
nées
1. Les chaînes de caractères se distinguent des entiers (int), des
flottants (float) et des booléens (bool).
2. Les chaînes de caractères sont immuables : une fois créées,
elles ne peuvent pas être modifiées
29 on 69
Les tableaux (Liste) et Tuples Chaîne de caractères (string)
Chaîne de caractères (string)
Manipulation de base des chaînes de caractères
■ Concaténer signifie "coller des chaînes ensemble". En Python,
le signe + permet de concaténer des chaînes de caractères.
■ Pour répéter plusieurs fois une chaîne de caractères, utilisez
l’opérateur *.
■ Les chaînes de caractères en Python sont indexées à partir de
zéro, ce qui signifie que le premier caractère d’une chaîne a
l’index 0.
■ On peut accéder à des caractères individuels à l’aide de
crochets []
30 on 69
Les tableaux (Liste) et Tuples Chaîne de caractères (string)
Chaîne de caractères (string)
Fonctions et méthodes utiles
■ len() permet d’obtenir la longueur d’une chaîne de caractères.
■ str() permet de convertir d’autres types en chaînes de
caractères1.
■ upper() permet de mettre tout en majuscules.
■ lower() permet de mettre tout en minuscules.
■ strip() enlève les espaces au début et à la fin d’une chaîne.
■ split() découpe une chaîne en une liste de sous-chaînes
basées sur un délimiteur.
■ join() rassemble une liste de chaînes en une seule chaîne de
caractère
31 on 69
Les tableaux (Liste) et Tuples Chaîne de caractères (string)
Chaîne de caractères (string)
Slicing et Indexing
■ L’indexation en Python commence à 0. Pour accéder à un
caractère particulier, utilisez des crochets [] avec l’index du
caractère souhaité.
■ Le slicing permet d’extraire des parties d’une chaîne.
■ Utilisez des crochets avec des indices de début et de fin
séparés par un deux-points
32 on 69
Les tableaux (Liste) et Tuples Chaîne de caractères (string)
Chaîne de caractères (string)
Formatage des chaînes
■ L’opérateur % permet de formater des chaînes en insérant des
valeurs dans des espaces réservés. méthode format() est plus
flexible que % et utilise des accolades comme espaces
réservés.
■ Les f-strings, introduits dans Python 3.6, permettent d’insérer
des expressions dans des chaînes en utilisant des accolades
précédées d’un f
33 on 69
Les tableaux (Liste) et Tuples Chaîne de caractères (string)
Chaîne de caractères (string)
Formatage des chaînes
34 on 69
Introduction aux Fonctions en Python
Plan du cours
Les instructions de contrôle de flux
Les tableaux (Liste) et Tuples
Introduction aux Fonctions en Python
Notion de variables locales et variables globales
Les fonctions recursive
Les dictionnaires en Python
Lecture et Ecriture dans un fichier
35 on 69
Introduction aux Fonctions en Python
Introduction aux Fonctions en Python
Définition de fonction
En Python, une fonction est un bloc de code réutilisable qui effectue
une tâche spécifique. Il existe deux manières principales de définir
des fonctions :
■ Une fonction est un bloc de code réutilisable permettant
d’exécuter une tâche spécifique.
■ Python propose plusieurs manières de définir des fonctions,
notamment avec def et lambda.
36 on 69
Introduction aux Fonctions en Python
Introduction aux Fonctions en Python
Définition de fonction
■ def : Permet de définir une fonction avec un nom et des
paramètres.
■ lambda : Définit une fonction anonyme pour des opérations
simples et rapides.
37 on 69
Introduction aux Fonctions en Python
Introduction aux Fonctions en Python
Définition de fonction
a) Avec def (Fonctions nommées). Le mot-clé def permet de créer
une fonction avec un nom identifiable.
38 on 69
Introduction aux Fonctions en Python
Introduction aux Fonctions en Python
Définition de fonction
b) Avec lambda (Fonctions anonymes) Les fonctions lambda sont
des fonctions anonymes (sans nom), souvent utilisées pour des
opérations simples et rapides.
39 on 69
Introduction aux Fonctions en Python
Réutilisation de Modules
Réutilisation de Modules
■ Python permet d’importer et de réutiliser des modules et des
fonctions existantes :
■ import math : Permet d’utiliser les fonctions du module math.
■ from math import sqrt : Importe une fonction spécifique.
■ import module as alias : Utilisation d’un alias pour le
module.
40 on 69
Introduction aux Fonctions en Python Notion de variables locales et variables globales
Notion de variables locales et variables globales
Notion de variables
Les variables en Python peuvent être locales (définies à l’intérieur
d’une fonction) ou globales (accessibles depuis n’importe quelle
partie du programme).
■ Une variable locale est définie à l’intérieur d’une fonction. Elle
n’est accessible qu’à l’intérieur de cette fonction et cesse
d’exister dès que l’exécution de la fonction est terminée.
■ Portée : La portée d’une variable locale est limitée à la fonction
dans laquelle elle est définie.
■ Durée de vie : La variable locale est créée lors de l’appel de la
fonction et détruite lorsque la fonction se termine.
41 on 69
Introduction aux Fonctions en Python Notion de variables locales et variables globales
Notion de variables locales et variables globales
Notion de variables
■ Une variable globale est définie en dehors de toute fonction.
Elle est accessible depuis n’importe quelle partie du code, y
compris à l’intérieur des fonctions.
■ Portée : La portée d’une variable globale s’étend à tout le
fichier ou module.
■ Durée de vie : La variable globale existe pendant toute la durée
d’exécution du programme
42 on 69
Introduction aux Fonctions en Python Les fonctions recursive
Les fonctions recursive
Les fonctions recursive
■ Une fonction récursive est une fonction qui s’appelle elle-même
pendant son exécution. La récursion est une technique de
programmation puissante et élégante, particulièrement adaptée
à la résolution de problèmes qui peuvent être décomposés en
sous-problèmes similaires.
■ Principe de Base Pour qu’une fonction récursive fonctionne
correctement, elle doit respecter deux conditions essentielles :
1. Cas de Base (Base Case) : Il doit exister au moins un cas de base
où la fonction ne s’appelle pas elle-même. Ce cas de base est la
condition d’arrêt de la récursion, permettant de stopper l’appel
infini de la fonction.
2. Appel Récursif (Recursive Call) : La fonction doit s’appeler
elle-même, mais en résolvant un sous-problème plus simple ou
plus petit. Chaque appel récursif doit se rapprocher du cas de
base pour garantir la terminaison de la récursion.
43 on 69
Introduction aux Fonctions en Python Les fonctions recursive
Les fonctions recursive
Exemple
44 on 69
Introduction aux Fonctions en Python Les fonctions recursive
Fonction Principale
Exemple
En Python, il n’y a pas de fonction main() au sens où on l’entend
dans des langages comme le C ou le Java. Le code qui est exécuté
en premier dans un script Python est celui qui n’est pasIndenté à
l’intérieur d’une fonction ou d’une classe.
■ Point d’entrée : Un script Python commence son exécution à
partir de la première ligne de code non-indentée.
■ Définition des fonctions : Il est courant de définir des fonctions
pour organiser le code et le rendre réutilisable. Cependant, ces
fonctions ne sont exécutées que lorsqu’elles sont appelées.
■ Programme principal : Le "programme principal" est constitué
des instructions qui sont exécutées séquentiellement en dehors
des définitions de fonctions ou de classes
45 on 69
Introduction aux Fonctions en Python Les fonctions recursive
Fonction Principale
Fonction Principale
46 on 69
Introduction aux Fonctions en Python Les fonctions recursive
fonction Principale
Exemple
■ Une pratique courante, surtout dans les modules Python,
consiste à utiliser la condition if __name__ == "__main__" :
■ Cela permet de déterminer si le script est exécuté directement
ou s’il est importé comme un module dans un autre script.
47 on 69
Introduction aux Fonctions en Python Les fonctions recursive
Fonction Principale
Exemple
48 on 69
Les dictionnaires en Python
Plan du cours
Les instructions de contrôle de flux
Les tableaux (Liste) et Tuples
Introduction aux Fonctions en Python
Les dictionnaires en Python
Lecture et Ecriture dans un fichier
49 on 69
Les dictionnaires en Python
Les dictionnaires en Python
Définition
■ Les dictionnaires en Python sont des structures de données
très puissantes qui permettent de stocker des paires clé-valeur.
■ Ils sont également appelés "tableaux associatifs" ou "maps"
dans d’autres langages.
■ Les dictionnaires sont mutables, ce qui signifie que vous
pouvez ajouter, supprimer ou modifier des paires clé-valeur
après leur création.
50 on 69
Les dictionnaires en Python
Les dictionnaires en Python
Caractéristiques Principales
■ Clés Uniques : Chaque clé dans un dictionnaire doit être
unique.
■ Mutables : Les dictionnaires peuvent être modifiés (ajout,
suppression, modification).
■ Non Ordonnés (avant Python 3.7) : Avant Python 3.7, les
dictionnaires ne garantissaient pas l’ordre des éléments.
Depuis Python 3.7, ils conservent l’ordre d’insertion.
■ Accès Rapide : Les dictionnaires offrent un accès très rapide
aux valeurs grâce à l’utilisation de clés.
■ Clés Immuables : Les clés doivent être de type immuable (par
exemple, chaînes de caractères, nombres, tuples). listes ne
peuvent pas être utilisées comme clés car elles sont mutables.
51 on 69
Les dictionnaires en Python
Les dictionnaires en Python
Création de dictionnaire
52 on 69
Les dictionnaires en Python
Les dictionnaires en Python
Accès aux valeurs
53 on 69
Les dictionnaires en Python
Les dictionnaires en Python
Modification des Dictionnaires
54 on 69
Les dictionnaires en Python
Les dictionnaires en Python
Modification des Dictionnaires
55 on 69
Les dictionnaires en Python
Les dictionnaires en Python
Opérations courantes
56 on 69
Les dictionnaires en Python
Les dictionnaires en Python
Opérations courantes
57 on 69
Lecture et Ecriture dans un fichier
Plan du cours
Les instructions de contrôle de flux
Les tableaux (Liste) et Tuples
Introduction aux Fonctions en Python
Les dictionnaires en Python
Lecture et Ecriture dans un fichier
Lecture de fichier
Écriture de fichier
58 on 69
Lecture et Ecriture dans un fichier Lecture de fichier
Lecture de fichier
Lecture de fichier
Pour lire ou écrire un fichier en python on utilise la fonction open().
Il existe plusieurs modes d’ouverture :
■ r, pour une ouverture en lecture (READ).
■ w, pour une ouverture en écriture (WRITE), à chaque ouverture
le contenu du fichier est écrasé. Si le fichier n’existe pas python
le crée.
■ a, pour une ouverture en mode ajout à la fin du fichier
(APPEND). Si le fichier n’existe pas, python le crée.
■ b, pour une ouverture en mode binaire.
■ t, pour une ouverture en mode texte.
■ x, crée un nouveau fichier et l’ouvre pour écriture
59 on 69
Lecture et Ecriture dans un fichier Lecture de fichier
Lecture de fichier
Lecture de fichier
Lire et écrire dans un fichier en Python est simple grâce aux fonc-
tions open et close, ainsi qu’aux méthodes read, write et writelines
■ Pour lire un fichier, utilisez la fonction open() avec le mode ’r’
(lecture).
■ La fonction open() prend comme premier argument le chemin
du fichier (relatif ou absolu) et en second argument le type
d’ouverture.
■ Un chemin relatif prend en compte l’emplacement de lecture,
tandis qu’un chemin absolu est complet et peut être lu quel que
soit l’emplacement de lecture
60 on 69
Lecture et Ecriture dans un fichier Lecture de fichier
Lecture de fichier
Ouvrir le fichier et Lire le contenu
61 on 69
Lecture et Ecriture dans un fichier Lecture de fichier
Lecture de fichier
Lire ligne par ligne
62 on 69
Lecture et Ecriture dans un fichier Lecture de fichier
Lecture de fichier
Fermer le fichier
63 on 69
Lecture et Ecriture dans un fichier Écriture de fichier
Écriture de fichier
Ouvrir le fichier
■ Pour écrire dans un fichier, utilisez la fonction open() avec le
mode ’w’ (écriture).
■ Notez que le mode ’w’ écrase le contenu existant.
■ Pour ajouter du contenu sans écraser, utilisez le mode ’a’
(ajout).
■ Si le fichier n’existe pas, Python le crée
64 on 69
Lecture et Ecriture dans un fichier Écriture de fichier
Écriture de fichier
Exemple
■ Écrire dans le fichier utilisez la méthode write() pour écrire du
texte.
■ Pour ajouter une nouvelle ligne, utilisez ””.
■ Vous pouvez également utiliser la fonction print() avec
l’argument file pour écrire dans le fichier
65 on 69
Lecture et Ecriture dans un fichier Écriture de fichier
Écriture de fichier
Exemple
66 on 69
Lecture et Ecriture dans un fichier Écriture de fichier
Écriture de fichier
L’utilisation de l’instruction with
L’utilisation de l’instruction with pour ouvrir des fichiers en Python
offre plusieurs avantages.
■ Gestion automatique des ressources : with simplifie la gestion
des fichiers en Python et réduit le risque d’erreurs liées à
l’omission de la fermeture du fichier. L’instruction with garantit
que le fichier est correctement fermé après son utilisation,
même si une exception se produit dans le bloc de code.
■ Code plus propre et plus lisible : with rend le code plus propre
et plus facile à lire en automatisant la gestion des fichiers
67 on 69
Lecture et Ecriture dans un fichier Écriture de fichier
Écriture de fichier
L’utilisation de l’instruction with
■ Réduction des erreurs : En utilisant with, vous créez un
contexte de gestion des ressources qui assure la fermeture du
fichier une fois le bloc de code terminé. Ceci est
particulièrement important car des fichiers mal ouverts ou non
fermés peuvent entraîner des fuites de mémoire, des erreurs
d’exécution et des pertes de données, compliquant le bon
fonctionnement des applications.
68 on 69
Lecture et Ecriture dans un fichier Écriture de fichier
Fin du cours
Merci de votre Attention
69 on 69