Programmation Python 2
TRONC COMMUN NATIONAL INFORMATIQUE APPLIQUÉE
Pr. Mohammed AMEKSA
Enseignant Chercheur à la Faculté des Sciences Semlalia – FSSM
E-mail :
[Link]@[Link]
Présentation
▪ Intitulé :
▼ Programmation Python 2
▪ Niveau :
▼ Tronc commun national Informatique Appliquée
▪ Volume horaire :
▼ 50 (cours, TP/TD, évaluation)
▪ Prérequis :
▼ Langage de programmation Python 1
09.02.26 3
Objectifs pédagogiques
Approfondir la maîtrise du langage Python en explorant des concepts
avancés comme la programmation orientée objet POO, la modularité et la
gestion des fichiers.
Développer des programmes organisés, maintenables et réutilisables selon
les bonnes pratiques de structuration du code.
Initier à la (POO) en Python et à ses principes fondamentaux (encapsulation,
héritage, polymorphisme).
Utiliser efficacement les modules standards de Python pour résoudre des
problèmes concrets.
Renforcer la robustesse des programmes grâce à la gestion des erreurs et
des exceptions.
09.02.26 4
PLAN
Ch1. Introduction et rappels de base
Ch2. La récursivité
Ch3. Gestion des Fichiers
Ch4. Programmation Orienté Objets
Ch5. Programmation modulaire et réutilisable
Ch6. Gestion des exception
Ch7. Autre Aspect avancé du programmation Python
Modalité de cours et d’évaluation
▪ Cours
▼ Les supports de cours vont être partagés avec vous après chaque séance
▼ Quelques exercices vont être données pendant les cours
▼ Des démonstrations pratique
▪ Travaux Pratiques
▼ Chaque TP doit faire l’objet d’un compte rendu à remettre sur la plateforme après
48h d’affectation
▼ Les comptes rendus sur les TP seront évalués
▪ Evaluation : NM = 80% EFS + 20% ETP
▼ NM : Note du module
▼ EFS : Examen de fin de semestre
▼ ETP : Examen des travaux pratiques
2025/2026 6
Ch1. Introduction et Rappels de base
▪ Les bases du langage Python ▪ Fonctions et procédures
▼ Pourquoi Python ? ▼ Motivation (pourquoi les fonctions ? principe DRY)
▼ Types de variables ▼ Syntaxe (définition et appel)
▼ Structures de données ▼ Fonctions et procédures
▼ Structure conditionnelle ▼ Arguments positionnels et arguments par mot-clé
▼ Structure répétitive ▼ Variables locales et variables globales
▼ Interaction avec l’utilisateur ▼ Exemples et exercices
09.02.26 8
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Pourquoi Python ?
Populaire – haut-niveau – à usage général – gratuit et open-source
Le plus populaire depuis 2019
La popularité aide à apprendre
le langage rapidement, puisque
il y aura beaucoup de tutoriels,
blogs, et de gens qui peuvent
répondre aux questions de
l’apprenti dans les forums (tels
que StackOverFlow)
[Link]
09.02.26 9
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Pourquoi Python ?
Populaire – haut-niveau – à usage général – gratuit et open-source
Python est un langage Haut-niveau
La popularité aide à apprendre le langage rapidement,
puisque il y aura beaucoup de tutoriels, blogs, et de gens
qui peuvent répondre aux questions de l’apprenti dans
les forums (tels que StackOverFlow)
09.02.26 10
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Pourquoi Python ?
Populaire – haut-niveau – à usage général – gratuit et open-source
À l’usage général
Peut-importe la spécialité dans laquelle vous allez continuer ➔ Python va vous aider
Peut être utilisé dans plusieurs domaines liés aux MIP
I: informatique
M: maths P: physique
Développement web, desktop,
Algèbre, analyse, Simulation des phénomènes
Intelligence artificielle,
statistiques, etc. physiques, visualisation, etc.
Test des logiciels, etc.
09.02.26 11
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Pourquoi Python ?
Populaire – haut-niveau – à usage général – gratuit et open-source
Open-source
Tout le monde peut voir / consulter le code de Python lui-même
[Link]
Guido Van Rossum
09.02.26 12
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Exécution
Interprété (Python) – Compilé (C, C++) – Un peu des deux (Java)
Compilé VS interprété
Processus de compilation : Processus d'interprétation :
- Le code source est traduit en langage machine ou en un code - Le code source est exécuté ligne par ligne ou déclaration par déclaration par
intermédiaire par un compilateur avant l'exécution. un interpréteur.
- Ce processus aboutit à un fichier exécutable autonome ou un binaire - L'interpréteur traduit et exécute le code à la volée, sans produire de fichier
qui peut être directement exécuté par le matériel de l'ordinateur. exécutable autonome.
Exécution : Exécution
- Le code compilé s'exécute directement sur le matériel de - Le code est exécuté au moment de l'exécution, et les modifications
l'ordinateur, ce qui conduit généralement à une exécution plus rapide. apportées au code peuvent être immédiatement testées sans étape de
- L'étape de compilation se produit avant l'exécution du programme. compilation séparée.
Exemples de langages compilés : Exemples :
- C, C++, Fortran. - Python, JavaScript, PHP.
Avantages : Avantages :
- Généralement une exécution plus rapide car le code est déjà traduit - Cycle de développement plus court car il n'y a pas besoin d'une étape de
en langage machine. compilation distincte.
- Le binaire compilé peut être distribué sans révéler le code source. - Le code peut être facilement modifié et testé pendant le développement.
Inconvénients : Inconvénients :
- Cycle de développement plus long car la compilation est une étape - Généralement une exécution plus lente par rapport aux langages compilés.
distincte. (Pour voir le résultat du code, on doit compilé) - Nécessite la présence de l'interpréteur sur le système cible.
- Des fichiers binaires spécifiques peuvent être nécessaires pour - Peut exposer le code source, car il est souvent distribué dans sa forme
chaque système d'exploitation différent. originale.
09.02.26 13
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Types des variables
Typage dynamique
Quelques fonctions prédéfinies (print, type, input, len, etc.)
int, float, bool, complex, string
Python est un langage dynamiquement typé,
c.à.d., le type des variables est déterminé de manière automatique lors de l’interprétation et l’exécution du
programme. Au contraire des langages statiquement typés tel que le langage C, où la déclaration des
variables consiste à définir le type de variable et sa valeur
09.02.26 14
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Accès et mutabilité
Définitions
▪ Tableaux : structure de données qui peut contenir plusieurs
valeurs de même type. Exemple, chaine de caractère.
▪ Listes : comme le tableau, sauf qu’elle peut contenir plusieurs
valeurs de types différents
▪ Set : comme les listes, sauf que l’ordre n’est pas pris en
considération (donc pas d’indexation par position), et surtout, il
contient des valeurs uniques
▪ Tuple : comme les listes, sauf qu’ils sont immutable (plus de
détails dans les slides suivants)
▪ Dictionnaire : clés – valeurs, clés doivent être uniques, l’ordre ici
est aussi pas important (donc pas d’indexation par position)
09.02.26 15
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Accès et mutabilité
List, set, dictionnaire = mutable
▪ Si le changement se fait sur la même variable = mutable
▪ Si le changement résulte en une autre variable = immutable
▪ On peut consulter ceci en utilisant la fonction prédéfinie : id ( )
qui donne un identifiant unique de chaque variable, qui est
l’adresse mémoire
Exemple ici
sur les listes
09.02.26 16
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Accès et mutabilité
Tuples et chaines de caractères = immutable
▪ Peut être changé , mais en créant une variable complétement différentes
09.02.26 17
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Accès et mutabilité
Attention à l’effet d’Alias
▪ Lorsque c’est mutable
09.02.26 18
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Accès et mutabilité
Exemple sur les ensembles et les Dictionnaires
09.02.26 19
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Accès et mutabilité
Accès aux valeurs « Accès par indice, par clé, etc »
Liste, tuple, set, et dictionnaire
indexation
09.02.26 20
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Accès et mutabilité
Accès aux valeurs « Une seule valeur à la fois » (l’indexation)
Strings, listes, tuples (par indice) Sets (convertir vers liste puis accès par indice ) Les dicts (par clé)
09.02.26 21
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Accès et mutabilité
Accès aux valeurs « Plusieurs valeurs à la fois » (Le Slicing)
Strings, listes, tuples (par indice) Sets (convertir vers liste
a[start : end : step] puis accès comme les listes)
Les dicts (par clé)
On utilise la fonction prédéfinis : map
Si vous avez une fonction, et que vous voulez l’appliquer
sur plusieurs valeurs, c’est ça le rôle de la fonction
prédéfinie map
09.02.26 22
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Méthodes (ou fonctions internes)
Les méthodes pour les strings
Point et tapez sur tabulation pour
afficher les différentes méthodes
de la structure de données
09.02.26 23
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Méthodes (ou fonctions internes)
Les méthodes pour les listes
Point et tapez sur tabulation pour
afficher les différentes méthodes
de la structure de données
09.02.26 24
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Méthodes (ou fonctions internes)
Les méthodes pour les tuples (que deux méthodes simples)
Point et tapez sur tabulation pour
afficher les différentes méthodes
de la structure de données
09.02.26 25
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Méthodes (ou fonctions internes)
Les méthodes pour les sets
09.02.26 26
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structures de données
lists, set, dict, tuple, et string
Méthodes (ou fonctions internes)
Les méthodes pour les dicts
09.02.26 27
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structure conditionnelle
if , elif, else
Multi-conditions avec que des ‘if’
Multi-conditions
Condition
09.02.26 28
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structure conditionnelle
if , elif, else
Multi-conditions avec que des ‘if’
Multi-conditions avec des ‘if’ et ‘elif’
Problème
La version correcte
09.02.26 29
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structure répétitive
La boucle while
La boucle for « 4 types »
while Vs for
Boucle while Boucle for :
- Utilisée lorsque vous ne savez pas combien - lorsque vous avez une séquence d'éléments sur
d'itérations seront nécessaires à l'avance et que laquelle itérer, telle qu'une liste, un tuple, une
vous souhaitez répéter le bloc de code tant qu'une chaîne de caractères, etc.
condition est vraie.
- Pour la syntaxe, il existe 4 méthodes de faire
- La syntaxe générale est : une boucle for :
while condition: nous allons les voir dans les slides
## block de code à répéter suivants
- La boucle while continue tant que la condition - La boucle for itère sur chaque élément de la
spécifiée est vraie. Si la condition devient fausse, la séquence jusqu'à ce qu'il n'y ait plus
boucle s'arrête. d'éléments.
09.02.26 30
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structure répétitive
La boucle while
La boucle for « 4 types »
La boucle « while »
Lors de l’utilisation de la boucle while,
toujours s’assurer bien que la condition
deviendra « True » dans un moment
spécifique, sinon vous aurez une boucle
infinie
09.02.26 31
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structure répétitive
La boucle while
La boucle for « 4 types »
La boucle « for » : méthode 1
Note:
a inclut, mais b n’est pas inclut
09.02.26 32
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structure répétitive
La boucle while
La boucle for « 4 types »
La boucle « for » : méthode 2
for élément in itérable:
#code à répéter
09.02.26 33
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structure répétitive
La boucle while
La boucle for « 4 types »
La boucle « for » : méthode 3
for i, élément in enumerate(itérable):
#code à répéter
L’indice et l’élément
09.02.26 34
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
Structure répétitive
La boucle while
La boucle for « 4 types »
La boucle « for » : méthode 4
for élément_1, élément_2 in zip(itérable_1, itérable_2):
#code à répéter
09.02.26 35
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
L’interaction avec l’utilisateur
La fonction input( )
La fonction print()
Interaction avec l’utilisateur via : input(‘message’)
Note:
• lorsque j’affiche a, il l’affiche comme chaine de caractère
• Donc, si vous voulez faire des opérations numériques sur a,
vous devez d’abord la convertir en type numérique (par
exemple ‘int’)
09.02.26 36
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
L’interaction avec l’utilisateur
La fonction input( )
La fonction print()
Interaction avec l’utilisateur via : print()
09.02.26 37
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
L’interaction avec l’utilisateur
La fonction input( )
La fonction print()
Interaction avec l’utilisateur via : print()
09.02.26 38
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
L’interaction avec l’utilisateur
La fonction input( )
La fonction print()
Interaction avec l’utilisateur via : print()
09.02.26 39
Ch1. Introduction et Rappels de base
Axe I Les bases du langage de programmation Python
L’interaction avec l’utilisateur
La fonction input( )
La fonction print()
Interaction avec l’utilisateur via : print()
09.02.26 40
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Motivation
Principe « DRY » : Don’t repeat yourself
Copier-coller le même code et changer arr1 par arr2
09.02.26 41
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Motivation
Principe « DRY » : Don’t repeat yourself
Et on l’appelle avec différents paramètres (entrées)
Solution : utiliser les fonctions
ou beaucoup plus mieux
On écrit la fonction une seule fois
09.02.26 42
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Motivation
Principe « DRY » : Don’t repeat yourself
Donc, pourquoi les fonctions ?
• En programmation, les fonctions sont
très utiles pour réaliser plusieurs fois la
même opération au sein d'un
programme. Elles rendent également le
code plus lisible et plus clair en le
fractionnant en blocs logiques.
• L'utilisation de fonctions favorise la
modularité du code, car elles
permettent de diviser un programme
complexe en parties gérables et de
réutiliser des blocs de code dans
différentes parties du programme.
09.02.26 43
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Syntaxe
Exemple
Note :
• On peut faire une fonction qui ne retourne rien (ce qui est appelé en algorithmique : une procédure)
Fonction VS Procédure
• En programmation, les termes "fonction" et "procédure" sont souvent utilisés pour désigner des blocs de code
réutilisables. Cependant, il existe une petite différence entre les deux.
09.02.26 44
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les Arguments
Arguments positionnels – Arguments par mot-clé – Arguments par défaut – et Argument à nom forcé
09.02.26 45
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les Arguments
Arguments positionnels – Arguments par mot-clé – Arguments par défaut – et Argument à nom forcé
09.02.26 46
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les Arguments
Arguments positionnels – Arguments par mot-clé – Arguments par défaut – et Argument à nom forcé
Argument par défaut
09.02.26 47
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les Arguments
Arguments positionnels – Arguments par mot-clé – Arguments par défaut – et Argument à nom forcé
Argument à nom forcé
09.02.26 48
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les Arguments
Arguments positionnels – Arguments par mot-clé – Arguments par défaut – et Argument à nom forcé
Argument à nom forcé
09.02.26 49
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les Arguments
Arguments positionnels – Arguments par mot-clé – Arguments par défaut – et Argument à nom forcé
Argument à nom forcé
Attention lors de l’utilisation de **valeurs avec d’autres arguments !!
09.02.26 50
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les variables locales et globales
Les variables locales et globales sont deux types de variables que l'on peut rencontrer lors de la programmation en
utilisant des fonctions. Comprendre la portée (scope) de ces variables est crucial pour éviter des erreurs
potentielles et écrire un code propre et bien structuré.
Variables Locales :
- Portée : Les variables locales sont définies à l'intérieur d'une fonction et ne sont accessibles qu'à l'intérieur
de cette fonction.
- Durée de vie : Elles existent tant que la fonction s'exécute et sont détruites dès que la fonction se termine.
Variables Globales :
- Portée : Les variables globales sont définies en dehors de toutes les fonctions et sont accessibles partout
dans le programme.
- Durée de vie : Elles existent pendant toute la durée d'exécution du programme.
Principes d'utilisation :
• Les variables locales sont généralement préférées car elles limitent la portée des variables aux parties
spécifiques du code où elles sont nécessaires, évitant ainsi les interférences involontaires.
• Les variables globales peuvent être utiles lorsque vous avez besoin d'une variable qui doit être
partagée entre plusieurs fonctions ou qui doit rester constante tout au long du programme.
• Évitez d'utiliser des variables globales lorsque des variables locales suffisent, car cela peut rendre votre
code moins lisible et
plus sujet à des erreurs difficiles à traquer.
09.02.26 51
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les variables locales et globales
Variable « locale » : Exemple sous Python
09.02.26 52
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les variables locales et globales
Variable « globale » : Exemple sous Python
09.02.26 53
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les variables locales et globales
Variable « globale » : Exemple sous Python
(Attention Erreur Fréquent !!)
09.02.26 54
Ch1. Introduction et Rappels de base
Axe II Fonctions et procédures
Les variables locales et globales
Variable « globale » : Exemple sous Python
(Attention Erreur Fréquent !!)
Solution pour le problème précédent
Utilisation du mot-clé prédéfinit : global
09.02.26 55