École Nationale de Commerce et de Gestion de Ta ng e r
Module : Algorithmes & Programmation python
Semestre 02(CENCG)
Pr. CHERRAT Loubna
[Link]@[Link]
Année universitaire: 2025/2026
Module : Algorithmes & Programmation python
Objectif du module COURS+TD+TP
Comprendre les concepts fondamentaux de l'algorithmique et de la
programmation en Python.
Apprendre à résoudre des problèmes en utilisant des algorithmes et les écrire
dans le langage de programmation Python .
Comprendre les principes des structures de données et leur application dans la
résolution de problèmes informatiques.
Acquérir une maîtrise pratique de la programmation en Python pour la
manipulation de données et la réalisation de projets informatiques.
2
Module : Algorithmes & Programmation python
Plan du cours
• Généralités
• Chapitre 1 : Bases de la programmation Python - TD1
- Instructions de base : lecture/écriture/affectation
- Structure conditionnelle
- Structure itérative / boucle
- L’instruction : break
- L’instruction : continue
• Chapitre 2 : Fonctions & Modules - TD2
• Chapitre 3 : Chaines de caractères - TD3
• Chapitre 4 : Structures de données - TD4
• Les types séquentiels : listes, tuples
• Les types de correspondance : dictionnaire
• Les types ensemblistes: ensemble Set.
• Chapitre 5 : Fichiers - TD5
• Chapitre 6 : Représentation graphique - TD6
• Chapitre 7 : Programmation orienté objet (POO ) – TD7
3
Module : Algorithmes & Programmation python
Généralités
4
Module : Algorithmes & Programmation python
Généralités
• Une description formelle d’un procédé de traitement qui permet, à
Algorithme partir d’un ensemble d’informations initiales, d’obtenir des informations
déduites;
• Un algorithme est une séquence d’actions (instructions) permettant
d’arriver, en un temps fini , à un résultat déterminé à partir d’une
situation donnée.
La conception d’un algorithme est caractérisée par 4 étapes :
Quelles sont les données dont on dispose?
Comprendre la nature du problème posé.
Quelles sont les résultats que l’on doit obtenir?
Préciser les données fournies (L’entrée des données).
Préciser les résultats que l’on désire obtenir ( La sortie des résultats).
Déterminer le processus de transformation des données en résultats ( Le traitement des données).
5
Module : Algorithmes & Programmation python
Généralités
Algorithme Un algorithme peut être représenté sous forme d’un organigramme ou d’un
pseudocode.
Exemple d’un organigramme
Début
Entrer la valeur de A et B
Faux Vrai
B=0
Calculer A/B
Afficher un
message d’erreur
Exemple d’un pseudocode
Afficher le résultat
Algorithme Division
Variables A, B : réel
Fin
Début
Ecrire (" Entrer les deux valeurs : ")
Lire (A,B)
if (B=0)
Ecrire (" impossible de diviser par 0 ")
else
Ecrire (" le résultat est : ", A/B)
Fin
6
Module : Algorithmes & Programmation python
Généralités
Programme • Un programme est une suite d’instructions écrites dans un code bien précis
appelé langage de programmation pouvant être compilés ou
interprétés et exécutés par une machine pour donner un résultat bien
déterminé.
Types des programmes
• Systèmes d’exploitation : un ensemble des programmes qui gèrent les
ressources matérielles et logicielles. Il propose une aide au dialogue entre
l’utilisateur et l’ordinateur à travers une interface textuelle
(interpréteur de commande) ou graphique (gestionnaire de
fenêtres). Il est souvent multitâche et parfois multi-utilisateur (ex: Ms-
Dos, windows, MacOs, Linux, etc.)
• Programmes d’application : ils sont dédiés à des tâches particulières, formés
d’une série de commandes contenues dans un programme source qui est transformé
pour être exécuté par l’ordinateur (ex: calculatrice, Excel, photoshop, etc.)
7
Module : Algorithmes & Programmation python
Généralités
Langage de • C’est une notation conventionnelle destinée à formuler des algorithmes
programmation afin de produire des programmes informatiques.
• Un langage de programmation est construit à partir d'une grammaire
formelle, qui inclut des symboles et des règles syntaxiques.
Types des langages de programmation
• Langage machine : un langage proche de la machine, formé de 0 et 1, propre à chaque processeur, il n’est pas portable.
• Langage d’assemblage : un codage alphanumérique du langage machine. plus lisible que le langage machine, mais n’est
toujours pas portable. traduit en langage machine par un assembleur.
• Langage de haut niveau : compréhensible par l’être humain, portable d’une machine à une autre, traduit en langage machine
par un compilateur ou un interpréteur.
8
Module : Algorithmes & Programmation python
Généralités
Compilation C’est la traduction du code source (rédigé en utilisant un langage de
programmation) en code objet (langage binaire). Elle comprend au moins quatre phases :
- Phase d’analyse lexicale,
- Phase d’analyse syntaxique
- Phase d’analyse sémantique
- Et une phase de production de code objet
Compilateur: traduire le programme entier une fois pour toutes.
Code Code Résultat
Compilateur Exécuteur
source Objet d’exécution
Ex : Langage C Langage binaire
0 et 1
Positif : plus rapide à l’exécution
Négatif : il faut recompiler à chaque modification
9
Module : Algorithmes & Programmation python
Généralités
Interprétation
C’est l’analyse et l’exécution de chaque ligne du code source en quelques
instructions du langage machine, qui sont ensuite directement exécutées au fur et à
mesure sans la génération du code objet.
Interpréteur : traduire au fur et à mesure les instructions du programme à chaque exécution.
Code source Interpréteur Résultat d’exécution
Ex : Langage python
Positif : exécution instantanée appréciable pour les débutants.
Négatif : exécution lente par rapport à la compilation.
10
Module : Algorithmes & Programmation python
Généralités
Différence entre Interpréteur et Compilateur
Interpréteur Compilateur
• Convertit le programme en prenant une seule • Analyse l’ensemble du programme et le traduit
ligne à la fois. dans son ensemble en code machine.
• L’analyse du code source prend moins de • L’analyse du code source prend beaucoup de
temps, mais le temps d’exécution global temps, mais le temps d’exécution global est
est plus lent. comparativement plus rapide.
• Génère du code d’objet intermédiaire qui nécessite
• Aucun code d’objet intermédiaire n’est généré, la
donc d'avantage de mémoire.
mémoire est donc efficace.
• Continue de traduire le programme jusqu’à • Il génère le message d’erreur uniquement
ce que la première erreur soit après avoir analysé l’ensemble du programme. Par
rencontrée. Par conséquent, le débogage est conséquent, le débogage est relativement difficile.
facile.
11
Module : Algorithmes & Programmation python
Généralités
Type de
programmation Généralement, on distingue entre deux types de programmation :
Programmation procédurale et la programmation orienté objet
Programmation procédurale
• La programmation procédurale est un paradigme de programmation qui repose sur
le concept de procédures ou fonctions.
• Dans la programmation procédurale, un programme est divisé en petites unités
autonomes appelées procédures contenant des séquences d'instructions à
exécuter. Ces procédures peuvent être appelées dans un ordre spécifique pour
accomplir une tâche plus complexe.
Exemple :
Fortran, Cobol, Pascal, C, …
12
Module : Algorithmes & Programmation python
Généralités
Type de
programmation Généralement, on distingue entre deux types de programmation :
Programmation procédurale et la programmation orienté objet
Programmation orienté objet
• La programmation orientée objet (POO) est un paradigme de
programmation qui utilise des objets, qui sont des instances de
classes, pour organiser et structurer le code.
• Elle repose sur plusieurs concepts clés à savoir : l’encapsulation,
l’abstraction, l’héritage, le polymorphisme, etc.
Exemple :
C++, Python, Ruby, Javascript, etc.
13
Module : Algorithmes & Programmation python
Généralités
Programmation orienté objet
Classe • Un modèle pour créer des objets. Elle définit les propriétés (attributs) et
les comportements (méthodes) communs à tous les objets créés à partir de
cette classe.
Objet
• Une instance concrète d’une classe
• Il représente une entité du monde réel et possède des caractéristiques
(attributs) et des actions (méthodes) associées à la classe à partir de laquelle
il a été créé.
Objet 1
Objet2
14
Module : Algorithmes & Programmation python
Généralités
Programmation orienté objet
Exemple d’une classe en python Création d’un objet en python
class Etudiant
def init (self, nom, age, note): # Création d'une instance de la classe Etudiant
[Link] = nom etudiant1 = Etudiant("Ahmed", 20, 15)
[Link] = age
[Link] = note # Affichage des informations initiales
def afficher_informations(self): print ("Informations initiales de l'étudiant : ")
etudiant1.afficher_informations()
print (f "Nom: {[Link]}")
print (f "Âge: {[Link]}") # Mise à jour de la note de l'étudiant
print (f "Note: {[Link]}")
etudiant1.modifier_note(18.0)
def modifier_note(self, nouvelle_note):
[Link] = nouvelle_note
15
Module : Algorithmes & Programmation python
Généralités
Histoire du langage python
• 1991 : Guido van Rossum travaille aux Pays-Bas sur le projet AMOEBA : un système d’exploitation distribué. Il conçoit
Python à partir du langage ABC et publie la version 0.9.0 sur un forum Usenet
• 2001 : naissance de la PSF (Python Software Fundation)
Les versions se succèdent... Un grand choix de modules est disponible, des colloques annuels sont organisés, Python est enseigné
dans plusieurs universités et est utilisé en entreprise...
• 2006 : première sortie de IPython
• Fin 2008 : sorties de Python 3.0
• 2013 : versions en cours des branches 2 et 3 : v2.7.3 et v3.3.0
• 3 février 2026: sortie de la dernière version stable de python : v3.14.3
16
Module : Algorithmes & Programmation python
Généralités
Présentation du langage python
Langage simple • Syntaxe claire et cohérente
• Gestion automatique de la mémoire
• Typage dynamique fort : pas de déclaration de type de données
Open source • Licence Open Source
• Python est libre et gratuit même pour les usages commerciaux
• Importante communauté de développeurs
• Nombreux outils standard disponibles
Langage interprété • Langage interprète rapide
• De nombreux modules sont disponibles à partir de bibliothèques optimisées
(souvent écrites en C ou C++)
Orienté objet • Langage multi-paradigme: Modèle objet puissant mais pas obligatoire
17
Module : Algorithmes & Programmation python
Généralités
Exécution d’un programme en python
• Afin d’exécuter un programme en python, il faut installer un interpréteur python
téléchargeable depuis le site : [Link]
• Et utiliser un éditeur de texte pour rédiger les script python ou utiliser un
IDE : Interactive Development Environment tels que :
IDLE Pyzo Pycharm
• Un script python est un ficher avec l’extension .py
18
Module : Algorithmes & Programmation python
Généralités
Processus d’exécution d’un programme en python dans IDLE
[Link] IDLE.
[Link]éer un nouveau fichier avec File > New File.
3.Écrire le code Python dans la fenêtre qui apparaît.
[Link] le fichier avec l'extension .py.
[Link]écuter le script en allant dans Run > Run Module ou en appuyant sur F5.
[Link] les résultats dans la fenêtre Shell.
19
Module : Algorithmes & Programmation python
Chapitre 1 : Bases de la programmation Python
20
Module : Algorithmes & Programmation python
Chapitre 1 : instructions de base
Structure d’un programme python
• Un programme python ne possède pas une structure bien précise
• Un programme python contient plusieurs types d’instructions qui répondent au problème défini.
- Instructions d’affichage
- Instructions de lecture
- Instructions d’affectation et de calcul
- Instructions alternatives
- Instructions répétitives
- Des commentaires, …
• Pour ajouter un commentaire sur une seule ligne
# exemple de commentaire
• Pour ajouter un commentaire sur plusieurs lignes
première ligne de commentaire
………………………
……….dernière ligne de commentaire
21
Module : Algorithmes & Programmation python
Chapitre 1 : instructions de base
Mots résérvés au langage python
False class from or None continue
global pass. True def if raise
and del return break for not
as elif in try
assert else is while
async except lambda with
await finally nonlocal yield
Pour afficher l’aide sur un keyword ou une fonction python, il suffit de taper la commande :
>>>> help(nom du keyword ou nom de la fonction)
>>> est l’invite de commande de l’interpréteur Python (prompt en anglais)
22
Module : Algorithmes & Programmation python
Chapitre 1 : instructions de base
Définition d’une donnée
▪ C’est un emplacement mémoire dans lequel on peut mémoriser une valeur.
▪ Une donnée est caractérisée par un identificateur, une valeur, et un type.
Une
▪ donnée peut être:
- variable : s’elle change de valeurs dans un programme
- Constante : s’elle garde la même valeur tout au long du programme
23
Module : Algorithmes& Programmation python
Chapitre 1 : Instructions de base
Identificateur des données
L’identificateur est un nom choisi pour désigner une donnée,
Il doit :
• Être formé des lettres (A - Z) (a - z), des chiffres (1 - 9) et des lignes de
soulignement ( _ )
• Commencer obligatoirement par une lettre.
Il ne doit pas
• Contenir des espaces
• Être un mot réservé du langage python
Python est sensible à la casse, ce qui signifie que les variables age, Age et AGE sont différentes.
Exemples : i, numéroProduit, coef_a, X1, age. . .
24
Module : Algorithmes& Programmation python
Chapitre 1 : Instructions de base
Types natifs de données
• Il représente le type de l’ensemble des valeurs que peut prendre une donnée.
• En python, le typage des données est dynamique : le type d’une donnée est
déterminée selon la valeur attribuée à cette donnée
• Pour savoir le type d’une donnée, il suffit d’utiliser la fonction type :
>>>> type (nom_donnee)
Exemple:
25
Module : Algorithmes & Programmation python
Chapitre 1 : Instructions de base
Types natifs des données
Types prédéfinis Signification Exemples
int Nombre entier a=1, b=-2
float Nombre réel a=1.3
complex Nombre complexe a=3+5j
bool Nombre logique a=true , b=false
str Chaine de caractères a="Bonjour" b="s" c=‘A’
26
Module : Algorithmes & Programmation python
Chapitre 1 : instructions de base
Opérateurs arithmétiques sur les types numériques
x+y Somme de x et y
x-y Différence de x et y Opérateurs logiques
x*y Produit de x et y
and ET logique
x/y Quotient de x et y
or OU logique
x//y Quotient entier de x et y
not Négation logique
x%y reste de la division euclidienne de x et y
x**y x à la puissance y
27
Module : Algorithmes & Programmation python
Chapitre 1 : instructions de base
Opérations sur les chaînes de caractères
Pour les chaînes de caractères, deux opérations sont possibles: l’addition et la multiplication
'Salut' + " Python" 'Salut Python'
'Salut' * 3 'SalutSalutSalut'
L’opérateur d’addition + concatène (assemble) deux chaînes de caractères.
L’opérateur de multiplication * entre un nombre entier et une chaîne de caractères duplique
(répète) plusieurs fois une chaîne de caractères.
' et " sont équivalents pour définir des chaînes de caractères.
Python offre également des triple guillemets (''' ou """) pour les chaînes multilignes. Ces
guillemets sont utiles pour les chaînes longues ou lorsque tu veux inclure des sauts de ligne.
28
Module : Algorithmes & Programmation python
Chapitre 1 : instructions de base
Comparaison des chaînes de caractères
C'est l'ordre alphabétique qui est utilisé dans le cas où l'on compare deux lettres majuscules ou minuscules.
les majuscules apparaissent avant les minuscules (en termes de codes Unicode).Par conséquent, les majuscules
sont considérées comme plus petites que les minuscules.
Exemple:
• "a" < "b" Fonctions utiles pour la comparaison des chaines de
caractères :
• ‘M’ < ‘m’
ord() : permet de connaître le code Unicode d'un caractère.
• "Maman" < "Papa"
chr() :permet de connaître le caractère correspondant à un code
• "maman" > "Papa " Unicode.
• ord('A') renvoie 65 Len(): renvoie le nombre de caractères que la chaine contient.
• ord('a') renvoie 97
• chr(65) envoie 'A‘
• len("Bonjour") renvoie 7
29
Module : Algorithmes & Programmation python
Chapitre 1 : instructions de base
Opérateurs de comparaison Opérateurs de conversion
< inférieur à Convertir x vers un
int(x)
nombre entier
<= inférieur ou égal à
> supérieur à Convertir x vers un
float (x)
nombre réel
>= supérieur ou égal à
Convertir x vers une chaine
== égal à str(x) de caractères
!= différent
Exemples :
x = "42" x = 3.14 x = "abc"
y = int(x) y = int(x) y = int(x)
-> y va contenir 42 -> y va contenir 3 -> Cela lèvera une erreur
30
Module : Algorithmes & Programmation python
Chapitre 1 : instructions de base
Opérateurs d’affectation
• C’est l’opération qui permet d’attribuer à une variable une valeur simple ou résultante d’une
expression arithmétique :
En algorithmique, l'affectation se note avec le signe ←
Var← e : attribue la valeur de e à la variable Var
- e peut être une valeur, une autre variable ou une expression
- l’affectation ne modifie que ce qui est à gauche de la flèche
En python, l'affectation se note avec le signe =
- Identificateur_variable = valeur simple
- Identificateur_variable = expression arithmétique
Exemples : a=3
x=y
s=p*(r**2)
31