COURS D’ALGORITHMIQUE ET
PROGRAMMATION AVEC PYTHON
BADOLO MARIUS
ENSEIGNANT-CHERCHEUR À L’ENSEA
INTRODUCTION
❑PRÉSENTATION
VOLUME HORAIRE : 20 HEURES
P RÉREQUIS : COURS D’ ALGORITHMIQUE ET PROGRAMMATION I
CRÉDIT: 1,5
EVALUATION: P RATIQUE 50% / E CRITE 50%
BADOLO MARIUS
ENSEIGNANT-CHERCHEUR À L’ENSEA
INGÉNIEUR DE CONCEPTION EN INFORMATIQUE OPTION MIAGE
MARIUS. BADOLO@ENSEA. ED. CI
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON
2
INTRODUCTION
❑INTÉRÊT DU COURS
▪ Concevoir des applications.
▪ Analyser des données.
▪ Automatiser des tâches répétitives.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 3
INTRODUCTION
❑OBJECTIF GÉNÉRAL
Ce cours vise à permettre à l'étudiant de concevoir des
programmes informatiques pour analyser des données
complexes.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 4
INTRODUCTION
❑OBJECTIFS SPÉCIFIQUES
▪ Donner la définition des concepts clés de la programmation.
▪ Connaitre la structure et les constituants d’un programme
informatique.
▪ Appréhender la syntaxe du langage python.
▪ Implémenter un algorithme à l’aide du langage python.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 5
INTRODUCTION
❑PLAN DU COURS
▪ Introduction
▪ Chapitre 1 : Présentation du langage python
▪ Chapitre 2 : Les bases du langage python
▪ Chapitre 3 : Les structures de données avec python
▪ Chapitre 4 : Gestion des fichiers avec python
▪ Conclusion
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 6
CHAPITRE 1 :
PRÉSENTATION DU LANGAGE
PYTHON
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 7
PRÉSENTATION DU LANGAGE PYTHON
❑ RAPPEL DE NOTIONS D’ALGORITHMIQUE
❑ CHOIX ET PRÉSENTATION DU LANGAGE
❑ OUTILS DE TRAVAIL
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 8
1
1. RAPPEL DE NOTIONS D’ALGORITHMIQUE
1.1 DÉFINITIONS DE CONCEPTS
▪ Un algorithme est une description d’une succession d’actions
(instructions) finies qui, une fois exécutées correctement, conduit à un
résultat donné.
▪ Un algorithme correct est un algorithme qui à chaque exécution
produit toujours le résultat escompté.
▪ Un algorithme doit être conçu pour la résolution d’une famille de
problèmes, et non pour résoudre un seul problème.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 9
1
1. RAPPEL DE NOTIONS D’ALGORITHMIQUE
1.1 DÉFINITIONS DE CONCEPTS
▪ L’algorithmique est l'art d'écrire des algorithmes. C’est un ensemble de
techniques et de méthodes soutenus par un formalisme.
▪ Le résultat obtenu par application de ce formalisme à un problème donné
est appelé Pseudo-code.
▪ Le pseudo-code aussi appelé algorithme précède et facilite l’écriture de
programmes.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 10
1
1. RAPPEL DE NOTIONS D’ALGORITHMIQUE
1.1 DÉFINITIONS DE CONCEPTS
▪ Un programme est la traduction du pseudo-code ou algorithme dans
un langage de programmation.
▪ Un langage de programmation est un ensemble structuré de règles
syntaxiques et sémantiques permettant de donner des instructions à
un ordinateur.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 11
1
1. RAPPEL DE NOTIONS D’ALGORITHMIQUE
1.1 DÉFINITIONS DE CONCEPTS
▪ Un langage de programmation inclut :
• Des instructions pour effectuer des opérations arithmétiques et
logiques.
• Des structures de contrôle (boucles, conditions, etc.) pour le flux
d’exécution.
• Des bibliothèques ou fonctions prédéfinies pour simplifier le
développement.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 12
1
1. RAPPEL DE NOTIONS D’ALGORITHMIQUE
1.2 LES CARACTÉRISTIQUES D’UN ALGORITHME
Un algorithme :
▪ fait passer d’un état initial d’un problème à un état final de celui-ci,
de façon déterministe,
▪ doit utiliser des données connues de l’utilisateur,
▪ doit contenir un nombre fini d’actions exécutables,
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 13
1
1. RAPPEL DE NOTIONS D’ALGORITHMIQUE
1.2 LES CARACTÉRISTIQUES D’UN ALGORITHME
Un algorithme :
▪ doit être défini sans ambiguïté, et les objets qu’il manipule doivent
être définis de manière très précise,
▪ doit être indépendant de tout langage de programmation,
▪ doit avoir toutes ses opérations qui peuvent être exécutées par un
homme avec des moyens manuels.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 14
1
1. RAPPEL DE NOTIONS D’ALGORITHMIQUE
1.3 LES PHASES DE MISE EN ŒUVRE D’UN ALGORITHME
❑ Phase d’analyse du problème.
❑ Phase de décomposition en étapes.
❑ Phase d’élaboration du pseudo-code.
❑ Phase de tests et optimisation.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 15
1
1. RAPPEL DE NOTIONS D’ALGORITHMIQUE
1.4 STRUCTURE D’UN ALGORITHME
ALGORITHME NOM_ALGO
CONSTANTE
TYPE
VARIABLE
DEBUT
Définition des structures de contrôle (traitements)
FIN.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 16
1 2. CHOIX ET PRÉSENTATION DU LANGAGE
▪ Langage de programmation créé en 1991 par Guido van Rossum.
▪ Langage interprété avec typage dynamique fort.
• Typage dynamique: l’ordinateur associe à la variable un type de
façon automatique lors de l’exécution du code.
• Typage fort: les types de données employés décrivent correctement
les données manipulées.
▪ Domaine d’application varié: Développement web, Science des données
et Machine Learning, Cybersécurité, Intelligence artificielle, IOT, etc
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 17
1 2. CHOIX ET PRÉSENTATION DU LANGAGE
❑AVANTAGES
▪ Syntaxe simple et lisible.
▪ Manipulation de larges ensembles de données
▪ Outils de visualisations
▪ Forte communauté très active.
▪ Bibliothèques et Framework riches.
▪ Fonctionne sur divers systèmes d'exploitation.
▪ Etc
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 18
1 3. OUTILS DE TRAVAIL
❑OUTILS ET ENVIRONNEMENTS DE DÉVELOPPEMENT
▪ IDE populaires : PyCharm, VS Code, Jupyter Notebook, Spyder
▪ Gestionnaire de paquets : pip
▪ Environnements virtuels : venv, conda
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 19
1 3. OUTILS DE TRAVAIL
❑JUPYTER NOTEBOOK
▪ Environnement de programmation aussi intégré dans ANACONDA.
▪ NoteBook (extension .ipynb).
▪ Possibilité de combiner dans un notebook du texte et du code.
▪ Exécution des cellules individuellement et dans l'ordre souhaité.
▪ Partage des Notebook.
▪ Idéal pour la manipulation des données.
▪ Ajout de texte avec la syntaxe MARKDOWN.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 20
CHAPITRE 2 :
LES BASES DU LANGAGE PYTHON
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 21
LES BASES DU LANGAGE PYTHON
❑ NOTIONS DE BASE DU LANGAGE PYTHON
❑ LES STRUCTURES DE CONTRÔLE
❑ LA MODULARITÉ EN PYTHON
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 22
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.1. LES OPÉRATEUR ARITHMÉTIQUES ET LOGIQUES
▪ Addition: +
▪ Soustraction: –
▪ Multiplication: *
▪ Division: / et division entière: //
▪ Exposant: **
▪ Reste de la division: %
▪ Ordre des opérations: Parenthèse – Exposant – Multiplication – Division –
Addition - Soustraction
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 23
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.1. LES OPÉRATEUR ARITHMÉTIQUES ET LOGIQUES
▪ Comparaison
• Egale (Ex: A==B)
• Différent (Ex: A!=B)
• Supérieur et supérieur ou égale (Ex: A > B; A >= B)
• Inférieur et inférieur ou égale (Ex: A < B; A <= B)
▪ Logiques
• Négation: NOT
• ET: AND (Ex: A AND B) - OU: OR (Ex: A OR B)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 24
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.2. NOTION DE VARIABLE
▪ Operateur d'affectation =
▪ Syntaxe
variable = valeur
▪ Règles pour le nom des variables
• Pas de caractères spéciaux ( exemple *, |, +, …)
• Ne peut pas commencer par un chiffre
• Ne peut pas être un mot réservé du langage
[Link]
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 25
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.2. NOTION DE VARIABLE
▪ Quelques Mots clés
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 26
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.2. NOTION DE VARIABLE
▪ Affichage du type d'une variable au moyen de la fonction type()
• Exemple
>>> a = 5
>>> type(a)
▪ Affectations multiples
>>> a , b = 1 , 2
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 27
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.3. INSTRUCTIONS D’ENTRÉE-SORTIE
▪ Saisir le contenu d'une variable se fait au moyen de la fonction input()
• Syntaxe: input(“Message à afficher”)
• Exemple:
>>> a = input(“Veuillez entrer un nombre entier”)
>>> type(a) nous retourne une chaine de caractère
La fonction type() retourne le type d’une variable passée en paramètre
>>> a = int(input(“Veuillez entrer un nombre entire”))
>>> type(a) nous retourne un entier
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 28
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.3. INSTRUCTIONS D’ENTRÉE-SORTIE
▪ Afficher le contenu d'une variable ou un message se fait au moyen de la
fonction print()
• Syntaxe: print(“Message à afficher”)
• Exemple:
>>> print(“Bienvenue a bord !”)
>>> print(a)
>>> print(“Le carré de {} est: {}”.format(a, a*a))
>>> print(f” Le carré de {a} est: {a*a} “)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 29
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.4. TYPES
▪ Entier : int
▪ Réel : float
▪ Booléen : Bool
▪ Chaine de caractère et Caractère : str
▪ Les chaines de caractère sont un type assez spécial ayant plusieurs
fonctions à disposition pour leurs manipulations.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 30
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.5. MANIPULATION DES CHAINES DE CARACTÈRES
▪ Utiliser l'opérateur + pour concaténer deux variables de type chaine
▪ Plusieurs chaines de caractères se suivant sont automatiquement
concaténées (EX: “La vie” “est belle”)
▪ [Link]() pour passer uniquement le premier caractère en
majuscule
▪ [Link]() et [Link]() pour passer en minuscule et majuscule
▪ [Link]() et [Link]() pour vérifier la casse
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 31
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.5. MANIPULATION DES CHAINES DE CARACTÈRES
▪ [Link](‘sub’) pour compter le nombre d'occurrences de sub
▪ [Link](’sub’) et [Link](‘sub’) pour vérifier si une chaine
commence ou finit par un certaine sous-chaine
▪ [Link](‘sub’) pour obtenir la position de sub dans la chaine
▪ [Link](‘sub’) est identique à find mais avec une exception ValueError
lorsque sub n'est pas trouvée
▪ [Link]([iterable]) concatène les chaines contenues dans iterable
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 32
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.5. MANIPULATION DES CHAINES DE CARACTÈRES
▪ [Link]([chars]) et [Link]([chars]) pour supprimer des caractères à
gauche et à droite
▪ [Link](old, new) pour remplacer old par new dans la chaine
▪ [Link](sep) pour obtenir une liste en utilisant sep comme séparateur
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 33
2 1. NOTIONS DE BASE DU LANGAGE PYTHON
1.5. MANIPULATION DES CHAINES DE CARACTÈRES
▪ [Link]([chars]) et [Link]([chars]) pour supprimer des caractères à
gauche et à droite
▪ [Link](old, new) pour remplacer old par new dans la chaine
▪ [Link](sep) pour obtenir une liste en utilisant sep comme séparateur
▪ Options d’usage de format
• ‘{first} {last}'.format(first='Python', last='programming!’)
• '{1} {0}'.format('Un', 'Deux')
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 34
2 2. LES STRUCTURES DE CONTRÔLE
2.1. LES STRUCTURES DE TEST
❑ LA STRUCTURE CONDITIONNELLE
If <condition> :
instruction 1
instruction 2
instruction N
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 35
2 2. LES STRUCTURES DE CONTRÔLE
2.1. LES STRUCTURES DE TEST
❑ LA STRUCTURE ALTERNATIVE
If <condition> :
instruction 1
else:
instruction 2
instruction N
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 36
2 2. LES STRUCTURES DE CONTRÔLE
2.1. LES STRUCTURES DE TEST
❑ LA STRUCTURE ALTERNATIVE (IMBRICATION DE SI)
If <condition_1> :
instruction 1
elif <condition_2> :
instruction 2
else:
instruction 3
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 37
2 2. LES STRUCTURES DE CONTRÔLE
2.1. LES STRUCTURES DE TEST
❑ LA STRUCTURE DE CHOIX
match <choix> :
case <choix_1> :
instruction 1
case <choix_2> :
instruction 2
case _ :
Autre_instruction
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 38
2 2. LES STRUCTURES DE CONTRÔLE
2.1. LES STRUCTURES DE TEST
❑ EXERCICES
1) Ecrire un programme qui demande à l’utilisateur d’entrer deux nombres
puis lui affiche le maximum.
2) Ecrire un programme qui demande deux nombres à l’utilisateur, puis lui
donne le choix de sélectionner son opération (adition, soustraction,
multiplication ou division. En fonction de l’option sélectionnée
l’algorithme effectue le calcule et lui fourni le résultat.
ALGORITHMIQUE ET PROGRAMMATION 39
2 2. LES STRUCTURES DE CONTRÔLE
2.1. LES STRUCTURES DE TEST
❑ EXERCICES
3) Ecrire un programme qui demande à l’utilisateur de saisir deux variables de
type CHAINE DE CARACTERE, qui affiche le contenu de chaque variable puis
échange les contenus, et affiche à nouveau les contenus.
4) Ecrire un programme qui demande un nombre entier compris entre 0 et 20 à
l’utilisateur puis lui donne sa mention suivant les indications ci-dessous:
0..9: Insuffisant - 10..13: Passable - 14..15:Bien -
>15: Très-Bien
ALGORITHMIQUE ET PROGRAMMATION 40
2 2. LES STRUCTURES DE CONTRÔLE
2.2. LES STRUCTURES ITÉRATIVES OU RÉPÉTITIVES
❑ WHILE
while <condition> :
instruction 1
instruction 2
instruction N
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 41
2 2. LES STRUCTURES DE CONTRÔLE
2.2. LES STRUCTURES ITÉRATIVES OU RÉPÉTITIVES
❑ FOR
for <compteur> in <sequence> :
instruction 1
instruction 2
instruction N
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 42
2 2. LES STRUCTURES DE CONTRÔLE
2.2. LES STRUCTURES ITÉRATIVES OU RÉPÉTITIVES
❑ RANGE
▪ Cette fonction permet de générer une séquence de nombres en
commençant par la borne inférieure, et jusqu'à la borne supérieure.
▪ range(start, end, step)
• start : élément initial de la séquence, par défaut sa valeur est 0.
• end : valeur maximale de la séquence, non retournée.
• Step : elle définit le pas, par défaut sa valeur est 1.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 43
2 2. LES STRUCTURES DE CONTRÔLE
2.2. LES STRUCTURES ITÉRATIVES OU RÉPÉTITIVES
❑ RANGE
▪ Dans les versions de Python 2, range retourne directement une liste.
▪ Dans les versions de Python 3.x, range génère une séquence. Afin
d'obtenir une liste, il faudra donc ajouter une conversion en liste.
list(range(….))
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 44
2 2. LES STRUCTURES DE CONTRÔLE
2.2. LES STRUCTURES ITÉRATIVES OU RÉPÉTITIVES
❑ BREAK, CONTINUE ET PASS
break: utiliser uniquement dans les boucles FOR et WHILE. Cette instruction
permet d’interrompt la boucle FOR ou WHILE.
continue: elle fait passer la boucle à son itération suivante.
pass: elle ne fait rien. Elle permet d'écrire des syntaxes correctes sans
effectuer d'action.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 45
2 2. LES STRUCTURES DE CONTRÔLE
2.3. LES EXCEPTIONS
❑ EXCEPTION
▪ Evenement anormal ou erreur qui se produit pendant l’execution d’un
programme.
▪ Elle interromp la suite des instructions à executer.
▪ Exemple:
• Division par zero
• Ouvrir un fichier qui n’existe pas
• Etc
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 46
2 2. LES STRUCTURES DE CONTRÔLE
2.3. LES EXCEPTIONS
❑ EXCEPTION
▪ La gestion des exceptions se fait avec l’instruction try … except
try:
< instructions>
except xxxError as err:
<instructions>
except Exception as autresErr:
<instructions>
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 47
2 2. LES STRUCTURES DE CONTRÔLE
2.3. LES EXCEPTIONS
❑ EXEMPLE
A = float (input(“Division de A par B: entrer la valeur de A”))
B = float (input(“Division de A par B: entrer la valeur de B”))
try:
Q=A/B
except ZeroDivisionError as err:
print(f“Erreur: {err} -- Division par zero pas possible”)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 48
2 2. LES STRUCTURES DE CONTRÔLE
2.2. LES STRUCTURES ITÉRATIVES OU RÉPÉTITIVE
Exercice:
1) Ecrire un programme qui demande à l’utilisateur de saisir des
nombres entiers puis fait la somme des 20 premiers nombres
strictement positifs.
2) Ecrire un programme qui demande à l’utilisateur de saisir un nombre
entier puis lui donne la table de multiplication jusqu’à 10 de ce
nombre.
ALGORITHMIQUE ET PROGRAMMATION 49
2 3. LA MODULARITÉ EN PYTHON
3.1. LES FONCTIONS
❑ NOTION DE MODULARITÉ.
▪ Lorsqu’un problème s’avère complexe il est découpé en petits
problèmes de complexité moindre pour faciliter sa résolution.
▪ Dans le domaine informatique on parle de sous programme.
▪ Les sous programmes sont soit des procédures, soit des fonctions.
▪ Dans le langage python, procédures et fonctions sont regroupés sous
le vocable de fonctions.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 50
2 3. LA MODULARITÉ EN PYTHON
3.1. LES FONCTIONS
❑ NOTION DE MODULARITÉ.
▪ Les avantages offerts sont:
• la réutilisation des sous-programmes;
• le gain de temps;
• une maintenance plus facile des logiciels.
▪ La déclaration d’une procédure peut se faire avec ou sans
paramètres (ou arguments).
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 51
2 3. LA MODULARITÉ EN PYTHON
3.1. LES FONCTIONS
❑ DÉFINITION D’UNE FONCTION.
def nom_fonction(args) :
instructions
…
instructions
return resultat
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 52
2 3. LA MODULARITÉ EN PYTHON
3.1. LES FONCTIONS
❑ DÉFINITION D’UNE FONCTION AVEC ARGUMENT OPTIONNEL
def nom_fonction(args, opt_arg=valeur) :
instructions
…
instructions
return resultat
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 53
2 3. LA MODULARITÉ EN PYTHON
3.1. LES FONCTIONS
❑ DÉFINITION D’UNE FONCTION AVEC UN NOMBRE VARIABLE D’ARGUMENTS
def nom_fonction(param1, param2, *args ) :
instructions
…
instructions
return resultat
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 54
2 3. LA MODULARITÉ EN PYTHON
3.1. LES FONCTIONS
❑ PORTÉE DES VARIABLES DANS UNE FONCTION
▪ Toute variable définie dans le programme principal est une variable
globale.
▪ Toute variable définie dans une fonction est une variable locale et n’a
de portée que dans la fonction.
▪ Toute variable du même nom qu’une variable globale definie dans une
fonction reste locale si elle n’est pas précédée du mot clé global
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 55
2 3. LA MODULARITÉ EN PYTHON
3.1. LES FONCTIONS
❑ PORTÉE DES VARIABLES DANS UNE FONCTION
a = “le glob” # la variable globale a
def fonct_test() :
a = “le loc” # la variable modifiée est la variable locale a
print(f“dedans a vaut: {a}”)
fonct_test() ➔ “dedans a vaut: le loc”
print(f“dehors a vaut: {a}”) ➔ “dehors a vaut: le glob”
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 56
2 3. LA MODULARITÉ EN PYTHON
3.1. LES FONCTIONS
❑ PORTÉE DES VARIABLES DANS UNE FONCTION
a = “le glob” // la variable globale a
def fonct_test() :
global a
a = “le loc” // la variable modifiée est la variable globale a
print(f“dedans a vaut: {a}”)
fonct_test() ➔ “dedans a vaut: le loc”
print(f“dehors a vaut: {a}”) ➔ “dehors a vaut: le loc”
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 57
2 3. LA MODULARITÉ EN PYTHON
3.2. NOTION DE MODULES
▪ Fichier contenant un ensemble de codes.
▪ Permet d'avoir un code propre et élégant en séparant des objets dans
des fichiers distincts et hiérarchisés.
▪ Permet l’ajout de nouvelles fonctionnalités écrites par d'autres
personnes.
▪ Peut contenir n'importe quoi (Classes, Fonctions, Variables, etc.)
▪ Pour accéder à un module, il faut l'importer:
• >>> import nom_module
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 58
2 3. LA MODULARITÉ EN PYTHON
3.2. NOTION DE MODULES
▪ Après l'importation, utiliser les fonctions et variables avec « . »
• >>> import nom_module
• >>> nom_module.une_fonction()
▪ Exemple:
Importons le module math , et utilisons ses fonctions sqrt() et floor()
pour calculer la racine carrée de 135 et la partie entière de 39.5
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 59
2 3. LA MODULARITÉ EN PYTHON
3.2. NOTION DE MODULES
▪ Namespace : Dictionnaire contenant toutes les fonctions et tous les
éléments des modules chargés.
▪ Voir la liste des modules chargés: dir()
▪ Attribuer un alias à un module:
• >>>import module_name as m
• >>>m.function1()
• >>>m.function2()
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 60
2 3. LA MODULARITÉ EN PYTHON
3.2. NOTION DE MODULES
>>> from module_name import fonction1, fonction2
▪ Avantage: sélectionner uniquement ce dont on a besoin
▪ Inconvénients :
• Objets importés non préfixés
• Objet importé écrasé par toute référence future portant le même
nom
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 61
2 3. LA MODULARITÉ EN PYTHON
3.2. NOTION DE MODULES
>>> from module_name import *
▪ Mauvaise pratique. Pas recommandée
▪ Pollution du Namespace
▪ Possibilité d'écraser des définitions de fonctions ou objets dans
d'autres modules Objets importés non préfixés
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 62
2 3. LA MODULARITÉ EN PYTHON
3.3. CRÉATION DE MODULES
▪ Soit un fichier python nommé menu_aleatoire.py contenant ceci:
from random import choice
menus = [“Attieke poisson”, “Riz sauce graine”, “Riz gras”, “Alloco oeuf”]
def selectionner():
return choice(menus)
programme= “Atelier Programmation python”
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 63
2 3. LA MODULARITÉ EN PYTHON
3.3. CRÉATION DE MODULES
▪ Soit un fichier python nommé [Link] dans le même dossier que
menu_aleatoire.py contenant le code ci-après:
#Import de tout le contenu de menu_aleatoire
import menu_aleatoire
#Utilisation de la fonction
choix = menu_aleatoire.selectionner()
#Utilisation de la variable
formation = menu_aleatoire.programme
print (f”{formation} -- Le déjeuné de ce jour est: {choix}”)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 64
2 3. LA MODULARITÉ EN PYTHON
3.3. CRÉATION DE MODULES
▪ Soit un fichier python nommé [Link] dans le même dossier que
menu_aleatioire.py contenant le code ci-après:
# Utilisation d’alias
import menu_aleatoire as ma
#Utilisation de la fonction
choix = [Link]()
#Utilisation de la variable
formation = [Link]
print (f”{formation} -- Le déjeuné de ce jour est: {choix}”)
▪ NB: Le nom d’une fonction peut aussi être remplacé par un alias
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 65
5 3. LA MODULARITÉ EN PYTHON
3.3. CRÉATION DE MODULES
▪ Dans un notebook, si le module à charger est un fichier notebook
(.ipynb), il ne se chargera pas donc l’import ne fonctionnera pas.
▪ Dans un notebook, si le module à charger est un fichier python (.py), il
se chargera correctement donc l’import fonctionnera.
▪ Il est possible d’importer des modules avec une extension .ipynb, mais
nécessitera ipynb ou nbformat et nbconvert.
▪ %%writefile –a [Link]: exporte le contenu d’une cellule
notebook dans le fichier [Link]. (-a évite d’écraser le fichier)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 66
2 3. LA MODULARITÉ EN PYTHON
3.4. PACKAGES
▪ Un package est un sous-répertoire contenant des fichiers python (.py),
Et le niveau de profondeur peut aller au delà de un.
▪ Si la versions de python est antérieures à 3.3, il est nécessaire d’ajouter
dans le sous-répertoire un fichier __init__.py et il peut être vide.
▪ Utiliser la syntaxe suivante pour importer les modules:
• >>> from nom_package import module1, module2, …, module
• >>> from pack import menu_aleatioire
• >>> from pack.mon_pack import menu_aleatioire
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 67
2 4. MODULES ET PACKAGES
3.4. PACKAGES
▪ L’interpréteur python inspecte dans un ensemble de dossiers pour
importer les modules.
▪ Cette liste est accessible via l’instruction [Link] . Il faut au préalable
importer le module sys.
>>> Import sys
>>> print([Link])
▪ Il renvoie une liste de tous les repertoires inspectés
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 68
2 3. LA MODULARITÉ EN PYTHON
3.4. PACKAGES
▪ La mise en œuvre de modules est très utile pour non seulement
structurer son code mais aussi pour l’utiliser dans différents projets.
▪ Il est très important avant toute conception d’un module de s’assurer
que la fonctionnalité recherchée n’est pas déjà présente dans la
bibliothèque standard de python ou dans un package tiers.
▪ Le site de référence des packages tiers de python est [Link]
▪ Installer un package avec pip install nom_package.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 69
CHAPITRE 3 :
LES STRUCTURES DE DONNÉES
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 70
LES STRUCTURES DE DONNÉES
❑ LES TUPLES
❑ LES LISTES
❑ LES DICTIONNAIRES
❑ LES ENSEMBLES OU SETS
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 71
3 1. LES TUPLES
1.1. CRÉATION DE TUPLES
▪ Structure de données immuable ou immutable: ils ne sont pas
modifiables après leur création
▪ Création de tuple vide: tp_vide=()
▪ Création de tuple à un élément: tp_one=(“Vert”,)
▪ Création de tuple à plusieurs éléments:
• tp_max=(“Vert”,”Jaune”, “Rouge”) // à privilégier
• tp_max= “Vert”,”Jaune”, “Rouge”
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 72
3 1. LES TUPLES
1.2. UTILISATION DE TUPLES
▪ Ils permettent une assignation de plusieurs variables à la fois.
• >>> tp_max=(“Vert”,”Jaune”, “Rouge”)
• >>> a, b, c = tp_max ➔ a=“Vert”; b=“Jaune; c=“Rouge”
• >>> a, b, c = b, c, a ➔ permute les valeur des trois variable
▪ Possibilité d’imbriquer des tuples.
▪ Eléments indexés: tp_max[1] donne “Jaune”
▪ tuple([1,2,4]) converti la liste [1, 2, 4] en tuple (1, 2, 4)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 73
3 1. LES TUPLES
1.2. UTILISATION DE TUPLES
▪ Ils peuvent être combinés à l’aide de l’opérateur +.
• >>> (“Orange”,) + (“Vert”,”Jaune”, “Rouge”)
• >>> (“Orange”,“Vert”,”Jaune”, “Rouge”)
▪ Ils peuvent être dupliqués à l’aide de l’opérateur *.
• >>> (“Orange”,) * 3
• >>> (“Orange”,“Orange”,”Orange”)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 74
3 2. LES LISTES
2.1. CRÉATION DE LISTES
▪ Structure de données modifiable représentant une séquence de valeurs.
▪ Exemple: [“Vert”, ”Jaune”, “Rouge”]
▪ Créer une liste
• >>> list_vide = []
• >>> liste_max=[1, 7, 4]
▪ Possibilité d’avoir des élément de types différents dans une même liste.
• >>> liste_max=[ 7, “Jaune”, 2.5, (“Rouge”, “R”), [4, 8, 10] ]
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 75
3 2. LES LISTES
2.1. CRÉATION DE LISTES
▪ Possibilité d’obtenir des listes à partir de la conversion d’autres types ou
structures de données itérable avec list().
• >>> autre_list_vide = list() // Creation d’une liste vide
• >>> list(“chat”) ➔ [“c”, “h”, “a”, “t”]
• >>> mon_tuple = (“Vert”, “Orange”, “Rouge”)
• >>> list(mon_tuple) ➔ [“Vert”, “Orange”, “Rouge”]
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 76
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ ACCESSIBILITÉ AUX ÉLÉMENTS D’UNE LISTES
▪ Une liste est une suite d’éléments ordonnés accessible par un index
représentant sa position. Le premier index est 0.
• >>> villes = [“Abidjan”, “Bouake”, “Daloa”]
• >>> villes[1] ➔ “Bouake”
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 77
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ ACCESSIBILITÉ AUX ÉLÉMENTS D’UNE LISTES
▪ list[i] sélectionne un élément en comptant de la gauche à la droite. Le
premier élément étant à l'index 0
▪ list[-i] sélectionne un élément en comptant de droite à gauche. Le
dernier élément étant à l'index -1
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 78
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ SLICING AVEC LES LISTES
▪ Le Slicing est le fait d’extraire une sous-séquence ou tranche d’une liste.
▪ Elle permet la manipulation d’une sous séquence et les modifications
apportées à la sous-séquence impactent la liste.
• >>> villes = [“Abidjan”, “Bouake”, “Daloa”, “Korogho”]
• >>> villes[1:3] ➔ [ “Bouake”, “Daloa”]
• >>> villes[1:3] = [ “Katiola”, “Man”] ➔ [“Abidjan”, “Katiola”, “Man”,
“Korogho”]
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 79
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ SLICING AVEC LES LISTES
▪ >>> villes = [“Abidjan”, “Bouake”, “Daloa”, “Korogho”, “Man” ]
▪ >>> villes[0:4:2] ➔ [ “Abidjan”, “Daloa”]
▪ >>> villes[:2] ➔ [ “Abidjan”, “Bouake”]
▪ >>> villes[2:] ➔ [ “Daloa”, “Korogho”, “Man” ]
▪ >>> villes[-2:] ➔ [ “Korogho”, “Man” ]
▪ >>> villes[-2::-1] ➔ [ “Korogho”, “Daloa”, “Bouake”, “Abidjan” ]
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 80
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ SLICING AVEC LES LISTES
▪ Lorsqu'on utilise le slicing pour modifier une sous-séquence
continue, il suffit juste de remplacer la séquence par un itérable,
quelque soit sa taille et son type.
▪ Lorsque la séquence est discontinue, il faut observer le nombre
d’éléments à remplacer dans la séquence.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 81
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ QUELQUES FONCTIONS DE MANIPULATIONS DES LISTES
▪ reverse(): permet d’inverser le contenu de la liste.
• >>> [Link]()
▪ append(): permet d’ajouter un nouvel élément à la liste. L’ajout se
fait en fin de liste.
• >>> [Link](nouveau)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 82
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ QUELQUES FONCTIONS DE MANIPULATIONS DES LISTES
▪ insert(): permet d’insérer un élément à un indice précis de la liste
• >>> [Link](2, nouveau)
▪ extend(): permet de fusionner deux listes. Le même résultat est
obtenu avec l’opérateur +
• >>> [Link](liste2)
• >>> liste1 = liste1+liste2
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 83
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ QUELQUES FONCTIONS DE MANIPULATIONS DES LISTES
▪ count(): permet de compter le nombre d’occurrence d’un élément
• >>> [Link](element)
▪ len(): permet de dénombrer les éléments d’une liste: len(liste)
▪ max() et min: permettent d’obtenir respectivement le maximum et
le minimum d’une liste
• >>> max(liste) ; >>> min(liste)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 84
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ QUELQUES FONCTIONS DE MANIPULATIONS DES LISTES
▪ remove(): permet de supprimer un élément de la liste par sa valeur.
Le premier élément trouvé de la liste est supprimé.
• >>> [Link](element)
▪ pop(): permet de supprimer un element et de le retourner (par défaut
le dernier)
• >>> [Link]() ; >>> [Link](index)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 85
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ QUELQUES FONCTIONS DE MANIPULATIONS DES LISTES
▪ del : permet de supprimer un objet à partir de son index
• >>> del liste[index]
▪ clear(): permet de supprimer tous les objets de la liste
• >>> [Link]()
▪ index(): obtenir l’index d’un objet de la liste
• >>> [Link](objet)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 86
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ QUELQUES FONCTIONS DE MANIPULATIONS DES LISTES
▪ join() : permet de convertir une liste en chaine
• >>> [Link](liste)
▪ split(): permet de decouper une chaine en liste.
• >>> [Link](separateur)
▪ sort(): permet de trier la liste elle-même: [Link]()
▪ sorted(): renvoie une copie triée de la liste: sorted(liste)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 87
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ COPIE DE LISTES
▪ Pour vérifier la présence d’un objet dans une liste, utiliser in:
• >>> villes = [“Abidjan”, “Bouake”, “Daloa”, “Korogho”, “Man” ]
• >>> “Bouake” in villes ➔ True
▪ Faire la différence entre copie et assignation :
• Assignation de variables avec =
• >>> cities = villes ➔ id(cities) et id(villes) sont identiques donc la
modification de l’un entraine celle de l’autre.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 88
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ COPIE DE LISTES
▪ Faire la différence entre copie et assignation :
• Copie de listes avec copy(), list() ou le slicing
• Une telle copie crée une liste différente
• >>> villes = [“Abidjan”, “Bouake”, “Daloa”, “Korogho”, “Man” ]
• >>> villes_c1 = [Link]()
• >>> villes_c2 = list(villes)
• >>> villes_c3 = villes[:]
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 89
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ COPIE DE LISTES
▪ Effectuer une copie profonde (récursive) avec deepcopy() :
• La fonction copy() fonctionne correctement lorsque tous les objets
de la liste sont immuables. Dans le cas contraire, les objets
modifiables(listes, dictionnaires, etc) présents sont des références.
• copy() ne fait qu’une copie des références. Si la variable originale est
modifiée, le contenu sera modifié dans toutes les copies.
• deepcopy() permet de faire une copie à part entière de ces objets.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 90
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ COPIE DE LISTES
▪ Effectuer une copie profonde (récursive) avec deepcopy() :
• Son utilisation demande l’import de copy
• >>> import copy
• >>> communes = [ “Bouake”, “Daloa”, [“Cocody”, “Adjame”] ]
• >>> com_1 = [Link](communes)
• id(communes) différent de id(com_1) et id(communes[2]) different de
id(com_1[2])
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 91
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ PARCOURIR UNE LISTES
▪ Parcourir une liste avec enumerate() :
• Elle permet d’accéder à l’index et la valeur en même temps.
• >>> villes = [“Abidjan”, “Bouake”, “Daloa”, “Man” ]
• >>> for index, valeur in enumerate(villes):
print(index, valeur)
• Resultat : 0 Abidjan 2 Daloa
1 Bouake 3 Man
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 92
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ PARCOURIR UNE LISTES
▪ Parcourir plusieurs liste avec zip() :
• Elle permet d’itérer sur plusieurs séquences en parallèle.
• >>> villes = [ “Bouake”, “Daloa”, “Man” ]
• >>> departs = [“8H30”, “9H00”, “7H30”]
• >>> tarifs = [6000, 8000, 9000]
• >>> for vil, dep, tarf in zip(villes, departs, tarifs ):
print(vil, dep, tarf)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 93
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ PARCOURIR UNE LISTES
▪ Parcourir plusieurs liste avec zip() :
• Résultats:
Bouake 8H30 6000
Daloa 9H00 8000
Man 7H30 9000
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 94
3 2. LES LISTES
2.2. UTILISATION DE LISTES
❑ COMPRÉHENSION DE LISTES
▪ Elle permet de raccourcir l’écriture de code d’itération sur les listes
>>> pairs = []
>>> for num in range(1,11):
if (num % 2 == 0):
[Link](num)
>>> pairs = [num for num in range(1, 11) if num % 2 == 0]
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 95
3 3. LES DICTIONNAIRES
3.1. NOTION DE DICTIONNAIRE
▪ Un dictionnaire est un ensemble clé:valeur dans lequel l’ordre n’a pas
d’importance comme dans les listes.
▪ La clé peut être l’un des types immuables (entier, chaine, etc).
▪ Exemple: les informations d’une personne, les villes et leurs populations
• les informations d’une personne
• >>> {“Nom”:”Konan”, “Prenom”:”Joseph”, “Age”:19}
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 96
3 3. LES DICTIONNAIRES
3.2. CRÉATION DE DICTIONNAIRES
▪ Création d’un dictionnaire vide: dict_vide = {} ou dict_vide=dict()
▪ Création d’un dictionnaire avec des données:
• >>> dict_p = {clé1:valeur1, clé2:valeur2, … , cléN:valeurN}
▪ Création d’un dictionnaire par conversion
• >>> list_t = [(‘a’,’b’), (‘c’,’d’), (‘e’,’f’)] ou list_t=[[‘a’,’b’], [‘c’,’d’], [‘e’,’f’]]
• >>> dict(list_t) ➔ {‘a’:’b’, ‘c’:’d’, ‘e’:’f’}
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 97
3 3. LES DICTIONNAIRES
3.2. CRÉATION DE DICTIONNAIRES
▪ Ajouter des valeurs à un dictionnaire
• >>> dict_t = {}
• >>> dict_t [“Nom”] =“KOUAME”
• >>> dict_t [“Prenom”] = “Luc”
• >>> dict_t ➔ {“Nom”:”KOUAME”, “Prenom”:”Luc”}
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 98
3 3. LES DICTIONNAIRES
3.3. UTILISATION DE DICTIONNAIRES
❑RÉCUPÉRER LES DONNÉES D’UN DICTIONNAIRE
▪ Obtenir la valeur d’un élément par clé : dict_p[clé]
• En cas de clé inexistante, une erreur de type KeyError est renvoyée
▪ Obtenir la valeur d’un élément avec get : dict_p.get(clé, default)
• En cas de clé inexistante, l’élément spécifié à la place de default
s’affiche. Default est optionnel.
• >>> dict_t = {‘a’:’b’, ‘c’:’d’, ‘e’:’f’}
• >>> dict_t.get(‘i’, “Contenu absent”) ➔ “Contenu absent”
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 99
3 3. LES DICTIONNAIRES
3.3. UTILISATION DE DICTIONNAIRES
❑ QUELQUES FONCTIONS DE MANIPULATION DES DICTIONNAIRES
▪ Compter le nombre d’éléments : len(dict_p)
▪ Vérifier qu’un élément est parmi les clés : object in dict_p
▪ Obtenir toutes les clés: dict_p.keys()
▪ Obtenir toutes les valeurs: dict_p.values()
▪ Obtenir le couple clé – valeur: dict_p.items()
▪ Supprimer un élément suivant sa clé: del dict_p[cle]
▪ Supprimer tous les éléments: dict_p.clear()
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 100
3 3. LES DICTIONNAIRES
3.3. UTILISATION DE DICTIONNAIRES
❑ QUELQUES FONCTIONS DE MANIPULATION DES DICTIONNAIRES
▪ Supprimer le dictionnaire: del dict_p
▪ Assigner le contenu d’un dictionnaire: as_dict_p = dict_p
▪ Copier un dictionnaire : dict_cp = dict_p.copy()
▪ Effectuer une copie profonde :
• >>> import copy
• >>> save_dict_p = [Link](dict_p)
▪ Les dictionnaires ne peuvent être comparés qu’avec == et !=
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 101
3 3. LES DICTIONNAIRES
3.3. UTILISATION DE DICTIONNAIRES
❑ COMBINER DES DICTIONNAIRES
▪ S’assurer qu’il n’y a pas de clés identiques dans les dictionnaires à
fusionner, auquel cas seul la dernière occurrence sera intégrée.
▪ Combiner les dictionnaires avec {**a, **b} ou update()
▪ >>> {**dict_p1, **dict_p2}
▪ >>> dict_p1.update(dict_p2)
NB: les copies éffectuées ne sont pas des copies profondes.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 102
3 3. LES DICTIONNAIRES
3.3. UTILISATION DE DICTIONNAIRES
❑ COMPRÉHENSION DE DICTIONNAIRE
Exemple: donner le nombre d’occurrence de chaque voyelle dans une
chaine.
▪ >>> mot = “anticonstitutionnelle”
▪ >>> voyelles = “aeiouy”
▪ >>> voyelles_cpt = {k: [Link](k) for k in mot if k in voyelles}
NB: les éléments retournés par une comprehension de dictionnaires sont
des couples clé-valeur pour former un dictionnaire
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 103
3 4. LES ENSEMBLES OU SET
4.1. CRÉATION DE SET
❑ NOTIONS DE BASE
▪ Collection non ordonnée sans élément dupliqué.
▪ Utile pour des tests d'appartenance ou la suppression de doublons.
▪ Approprié pour des opérations mathématiques telles que les unions, les
intersections, les différences et les différences symétriques.
▪ Création avec des accolades {} ou la fonction set().
NB: Pour créer un set vide, {} ne fonctionne pas. Utiliser set().
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 104
3 4. LES ENSEMBLES OU SET
4.1. CRÉATION DE SET
❑ CRÉATION D’UN SET PAR CONVERSION
▪ set(itérable) où itérable peut être: chaine, liste, tuple, dictionnaire
▪ Tous les doublons dans itérable seront supprimés.
▪ L’ordre d’apparition ne sera pas forcément le même que dans itérable.
• >>> set(“lettres”) ➔ {‘e’, ‘l’, ‘r’, ‘s’, ‘t’}
• >>> {“pomme”, “orange”, “pomme”, “orange”} ➔{“orange”, “pomme”}
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 105
3 4. LES ENSEMBLES OU SET
4.2. UTILISATION DE SET
❑ QUELQUE FONCTIONS DE MANIPULATION DES SET
▪ Obtenir la longueur: len(monSet)
▪ Ajouter un élément avec add(): [Link](element)
▪ Supprimer un élément avec remove(): [Link](element)
▪ Tester une valeur avec in: element in monSet
▪ Vérifier si un élément est un sous-ensemble avec issubset() ou <=:
• >>> [Link](b) ➔ renvoie True si a est un sous-ensemble de b
• >>> a <= b fait la même chose
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 106
3 4. LES ENSEMBLES OU SET
4.2. UTILISATION DE SET
❑ OPÉRATIONS ENSEMBLISTES
▪ Vérifier si un élément est un sur-ensemble avec issuperset() ou >=:
• >>> [Link](b) ➔ renvoie True si a est un sur-ensemble de b
• >>> a >= b fait la même chose
▪ Union: a | b ou [Link](b)
▪ Intersection: a & b ou [Link](b)
▪ Différence: a - b ou [Link](b)
▪ Différence symétrique: a ^ b ou a.symmetric_difference(b)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 107
3 4. LES ENSEMBLES OU SET
4.2. UTILISATION DE SET
❑ CRÉATION DE SETS IMMUABLES
▪ Compréhension d’ensemble :
• >>> a_set = { num for num in range(1,6) if num % 3 == 0 }
▪ Créer un ensemble immuable avec frozenset():
• >>> frozenset(iterable)
• >>> frozenset([“Cocody”, ”Adjame”, “Marcory”])
• >>> frozenset({“Cocody”, ”Adjame”, “Marcory”})
• >>> frozenset((“Cocody”, ”Adjame”, “Marcory”))
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 108
CHAPITRE 4 :
GESTION DES FICHIERS AVEC
PYTHON
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 109
4 GESTION DES FICHIERS AVEC PYTHON
1. GÉNÉRALITÉ
▪ La fonction open() ouvre un fichier et retourne un File object.
▪ Un File object contient des méthodes et attributs pour récupérer des
informations sur le fichier ouvert, mais également pour le manipuler:
• Lire ou écrire dans un fichier
• Ajouter ou écraser un fichier existant
▪ Dans Python, un fichier est catégorisé en deux types:
• Texte
• Binaire
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 110
4 GESTION DES FICHIERS AVEC PYTHON
1. GÉNÉRALITÉ
▪ >>> fileobj = open(nomfichier, mode)
• fileobj est l’objet fichier renvoyé par open()
• nomfichier est la chaine du nom de fichier
• Mode indique le type de fichier et ce qu’on veut en faire
▪ La première lettre du mode indique l’opération:
• r : lecture.
• w: écriture. Il cré le fichier s’il n’existe pas et l’écrase sinon.
• x: création et écriture dans un nouveau fichier.
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 111
4 GESTION DES FICHIERS AVEC PYTHON
1. GÉNÉRALITÉ
▪ La première lettre du mode indique l’opération:
• a : ajout. Écrire à la fin du fichier si celui-ci existe déjà.
• r+: lecture et écriture
▪ La deuxième lettre de mode est le type de fichier:
• t (ou rien) signifie texte
• b signifie binaire
• Ecrire dans un fichier avec la fonction write()
• Fermer le fichier lorsqu’on à terminé avec la fonction close()
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 112
4 GESTION DES FICHIERS AVEC PYTHON
1. GÉNÉRALITÉ
❑ LECTURE DE FICHIERS AVEC READ(), READLINE() ET READLINES()
▪ Une seule opération de lectures peut être utilisée à la fois. Il faudra à
nouveau ouvrir le fichier si l'on souhaite utiliser une autre fonction.
• >>> [Link](5) # 5 caractères suivants
• >>> [Link]() # la ligne entière
• >>> [Link]() # liste contenant les lignes
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 113
4 GESTION DES FICHIERS AVEC PYTHON
1. GÉNÉRALITÉ
❑ MANIPULATION DES FICHIERS AVEC WITH
▪ La syntaxe avec with ferme le fichier automatique à la fin de
l’exécution du code.
▪ Elle est très conseillée car elle évite tout problème lié à un oubli de
fermeture du fichier avec la fonction close().
with open('fichier’, 'w') as file:
[Link]('Hello world’)
[Link]('Ceci est un exemple')
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 114
4 GESTION DES FICHIERS AVEC PYTHON
2. FICHIER CSV
❑ EXEMPLE: LECTURE AVEC LA FONCTION [Link]()
▪ Il faut importer le module csv
import csv
with open('[Link]', 'r') as csvfile:
csvreader = [Link](csvfile, delimiter=';')
for i in csvreader:
print(i)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 115
4 GESTION DES FICHIERS AVEC PYTHON
2. FICHIER CSV
❑ EXEMPLE: ÉCRITURE AVEC LA FONCTION [Link]()
▪ Il faut importer le module csv
maliste = [[1, “Orange”], [2, “Banane”], [3, “Kiwi”], [4, “Ananas”]]
import csv
with open('resultat_fruit.csv’, ‘wt') as csvfile:
csvfruit = [Link](csvfile)
[Link](maliste)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 116
4 GESTION DES FICHIERS AVEC PYTHON
2. FICHIER CSV
❑ EXEMPLE AVEC DICTREADER()
▪ Il faut importer le module csv
import csv
with open('[Link]', 'r') as csvfile:
reader = [Link](csvfile, delimiter=';')
for row in reader:
print(row['nom'], row['prenoms’])
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 117
4 GESTION DES FICHIERS AVEC PYTHON
2. FICHIER CSV
❑ EXEMPLE: ÉCRITURE AVEC LA FONCTION [Link]()
▪ Il faut importer le module csv
mondict = [{1: “Orange”}, {2: “Banane”}, {3: “Kiwi”}, {4: “Ananas”}]
import csv
with open('resultat_fruit.csv’, ‘wt') as csvfile:
csvfruit = [Link](csvfile,[“Num”,”Fruit”])
[Link]()
[Link](mondict)
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 118
4 GESTION DES FICHIERS AVEC PYTHON
3. UTILISATION DU MODULE OS
❑ QUELQUES FONCTIONS DE MANIPULATION AVEC OS
▪ [Link](chemin): Vérifie si un fichier ou un dossier existe
▪ Exemple:
if [Link]('[Link]'):
print("Le fichier existe.")
else:
print("Le fichier n'existe pas.")
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 119
4 GESTION DES FICHIERS AVEC PYTHON
3. UTILISATION DU MODULE OS
❑ QUELQUES FONCTIONS DE MANIPULATION AVEC OS
▪ [Link](chemin): Vérifie si le chemin est un dossier
▪ [Link](chemin): Vérifie si le chemin est un fichier
▪ Exemple:
if [Link](chemin):
print("C'est un dossier.")
elif [Link](chemin):
print("C'est un fichier.")
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 120
4 GESTION DES FICHIERS AVEC PYTHON
3. UTILISATION DU MODULE OS
❑ QUELQUES FONCTIONS DE MANIPULATION AVEC OS
▪ [Link](path): Liste les fichiers et dossiers contenus dans un dossier.
for element in [Link]('.'):
print(element)
▪ [Link](src, dst): Renomme ou déplace un fichier ou un dossier.
[Link]('ancien_nom.txt', 'nouveau_nom.txt')
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 121
4 GESTION DES FICHIERS AVEC PYTHON
3. UTILISATION DU MODULE OS
❑ QUELQUES FONCTIONS DE MANIPULATION AVEC OS
▪ [Link](path): Supprime un dossier vide.
▪ [Link](path, exist_ok=True): Crée un dossier (et sous-dossiers)
récursivement.
▪ [Link](): Retourne le chemin du dossier courant.
▪ [Link](chemin): Change le répertoire de travail.
▪ [Link](a, b, ...): Construit un chemin compatible.
chemin = [Link]('dossier', '[Link]')
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 122
❑BIBLIOGRAPHIE
▪ Bill LUBANOVIC, (2022), Python: comprendre les bases et maitriser la programmation
▪ [Link]
▪ [Link]
▪ [Link]
ENVIRONNEMENT BUREAUTIQUE ET TIC 123
MERCI
BADOLO MARIUS
BUREAU 602
[Link]@[Link]
+225 0709905592
ALGORITHMIQUE ET PROGRAMMATION AVEC PYTHON 124