Programmation Orientée Objet en
Python
[Link] Samia Sammoud
2025-2026
Plan du cours
• Introduction au
Partie 1 langage Python et
ses fondamentaux
• Programmation
Partie 2 Orienté Objet sous
Python
• Introduction au langage
Partie 1 Python et ses fondamentaux
Introduction générale à la
programmation
La programmation
o La programmation consiste à « expliquer » en détails à une machine ce
qu'elle doit faire, en sachant qu'elle ne peut pas véritablement «comprendre»
un langage humain, mais seulement effectuer un traitement automatique sur
des séquences de caractères.
o Un programme n'est rien d'autre qu'une suite d'instructions, codées en
respectant de manière stricte un ensemble de conventions fixées à l'avance
que l'on appelle un langage informatique. La machine est ainsi pourvue d'un
mécanisme qui décode ces instructions en associant à chaque « mot » du
langage une action précise.
Machine, Langage et Programmation
• Dans son fonctionnement interne, un ordinateur est totalement
incapable de traiter autre chose que des nombres binaires.
…00110011001100110011000011111100001111….
Alors que nous raisonnons en base 10 (grâce à nos 10 doigts)
Imaginez qu’un ordinateur ne sache compter qu’avec une paire de doigts
• Toute information d'un autre type doit être convertie, ou codée, en
format binaire. Cela est vrai pour :
Ø les données que l'on souhaite traiter (les textes, les images,
les sons, les nombres, etc.),
Øles programmes : c'est-à-dire les séquences d'instructions
que l'on va fournir à la machine pour lui dire ce qu'elle doit faire
avec ces données.
Machine, Langage et Programmation
Le seul «langage» que l'ordinateur puisse véritablement «comprendre»
est donc très éloigné de ce que nous utilisons nous-mêmes.
• C'est une longue suite de 1 et de 0 (les "bits") souvent traités par groupes
de 8 (les « octets »), 16, 32, ou même 64.
• Ce « langage machine » est évidemment « presque » incompréhensible
pour nous.
• Pour « parler » à un ordinateur, il nous faudra utiliser des systèmes de
traduction automatiques, capables de convertir en nombres binaires des
suites de caractères formant des mots-clés (anglais en général) qui seront
plus significatifs pour nous.
Machine, Langage et Programmation
Le système de traduction proprement dit s'appellera interpréteur
ou bien compilateur, suivant la méthode utilisée pour effectuer la
traduction.
On appellera langage de programmation un ensemble de « mots-
clés » (choisis arbitrairement) associé à un ensemble de règles très
précises indiquant comment on peut assembler ces mots pour former
des « phrases » que l'interpréteur ou le compilateur puisse traduire
en langage machine (binaire).
Machine, Langage et Programmation
Un langage de bas niveau est proche de la machine : il permet un contrôle
direct du matériel (mémoire, processeur) mais il est plus difficile à lire et à
écrire.
Un langage de haut niveau est plus proche du langage humain : il utilise une
syntaxe simple, cache les détails techniques et facilite la programmation, mais
donne moins de contrôle direct sur le matériel.
Langage machine, langage de programmation
Pourquoi apprendre le Python?
• Il s'agit d'un langage de haut niveau
• Il est beaucoup plus facile d'écrire un programme dans un
langage de haut niveau : l'écriture du programme prend donc
beaucoup moins de temps (versus sa traduction?)
• le programme sera souvent portable : on peut le faire
fonctionner sans aucune modification, sur des machines ou
des systèmes d'exploitation différents (versus programme de
bas niveau).
Compilation et Interprétation
Il existe deux techniques de traduction :
§ L’interprétation
Ce que l’on utilisera à chaque fois
que l’on voudra exécuter le code
Ce que nous écrirons … source : traduction/exécution Affichage ligne
ligne par ligne. par ligne
Très flexible et interactifve(tu peux tester Plus lent qu’un programme
ton code immédiatement). compilé (traduction à la volée).
Multiplateforme (pas besoin de recompiler
pour chaque système).
Compilation et interprétation
§ La compilation
traduit la totalité du texte Programme prêt à être exécuté
source en une fois
La compilation prend du temps avant
Exécution très rapide(déjà traduit d’obtenir un exécutable.
en langage machine). Moins flexible pour tester rapidement
Pas besoin du code source pour (chaque changement nécessite une
exécuter le programme. recompilation).
Compilation et interprétation
§ Langages Semi-Compilés
Certains langages modernes
tentent de combiner
les deux techniques afin de
• JAVA
garder le meilleur de chacune.
très facile à interpréter
portable
Ces langages passent par une compilation intermédiaire vers un bytecode.
Ce bytecode est ensuite exécuté par une machine virtuelle (VM), souvent optimisée avec un JIT
(Just-In-Time compiler) qui traduit en code machine à la volée.
Mise au point d'un programme.
Recherche des erreurs
Trois types d’erreurs :
1. syntaxe : se réfère aux règles que les auteurs du langage ont
établies pour la structure du programme.
2. sémantique : c’est une erreur de logique, i.e, le programme est sans
erreurs mais les résultats sont inattendus.
3. d’exécution ou « Run-time error » : lorsque votre programme
fonctionne déjà, mais que des circonstances particulières se
présentent (par exemple, votre programme essaie de lire un fichier qui
n'existe plus, une division par zéro).
Langages naturels et langages formels
1. Les langages naturels sont ceux que les êtres humains utilisent pour
communiquer.
1. Les langages formels sont des langages développés par nous même, en vue
d'applications spécifiques.
• Par exemple, le système de notation utilisé par les mathématiciens est un
langage formel particulièrement efficace pour représenter les relations
entre nombres et grandeurs diverses.
• Les chimistes utilisent un langage formel pour représenter la structure des
molécules
• , …etc.
Les langages de programmation sont des langages formels qui ont été
développés pour décrire des algorithmes et des structures de données.
• Introduction au langage
Partie 1 Python et ses fondamentaux
Introduction au langage
Python
Histoire résumée
• Créé par Guido van Rossum en 1991
• Nom inspiré de la série Monty Python
Guido van Rossum, né le 31 janvier 1956 à La
Haye aux Pays-Bas, est un développeur connu
Monty Python's Flying Circus pour être le créateur et leader du projet
du langage de programmation Python.
• En 2001, la PSF (Python Software Foundation) est créée: il s’agit d’une
organisation à but non lucratif détenant les droits de propriété intellectuelle de
Python, depuis il est distribué sous forme de logiciel libre.
• Utilisé dans l’IA, le web, la data science, l’automatisation...
Caractéristiques du langage Python
Python est un langage :
• Interprété: directement interprété sans passer par la phase de compilation
• Orienté objet : intègre le concept de classe et d’objet.
• Haut niveau: propose des fonctionnalités avancées et automatiques (le garbage
collecting) et des structures de données complexes (dictionnaires) éloignées des types
numériques standards.
• Modulaire: la définition du langage est très succincte et autour de ce noyau concis,
de nombreuses librairies ou modules ont été développées.
• À syntaxe positionnelle : seule l’indentation (décalage) permet de marquer le début et
la fin d’un bloc d’instructions.
• À typage dynamique: le type d’une variable est définie lors de l’exécution du
programme.
Avantages & Inconvénients
• Portable: Disponible sur nombreuses • Lent
plateformes(Linux, Windows, Mac
OS..)
• Absence de pointeurs
• Libre: Entièrement gratuit,
• Typage diffèrent
• Lisible: basé sur l’indentation,
• Extensible: richesse des extensions
disponibles sur internet,
• Son utilisation n’est pas restreinte
à un domaine:
calcul scientifique,
les interfaces graphiques,
programmation Web
…..
Installation
Simple exécutable à installer sous Windows,
• Sous Linux et Mac OS X, généralement
préinstallé,
• Menu ajouté après installation:
- IDLE (Python GUI): Editeur de texte, pour
programmer
- Module Docs: pour rechercher des
informations dans la documentation
- Python (command line): Ligne de commande
Python
- Python Manuals: documentation à propos du
langage Python
- Uninstall Python: pour désinstaller Python
Premiers PAS !
1. Nous allons demander à l'ordinateur de travailler à notre place, en lui
donnant, par exemple, l'ordre d'effectuer une addition et d'afficher le
résultat.
2. Pour cela, nous allons devoir lui transmettre des « instructions », et
également lui indiquer les « données » auxquelles nous voulons
appliquer ces instructions.
3. Nous allons d’abord calculer avec Python en mode interactif, i.e. en
dialoguant avec lui directement depuis le clavier pour découvrir
rapidement un grand nombre de fonctionnalités.
Premiers PAS !
« Calculer avec Python en mode interactif »
L'interpréteur peut être lancé directement depuis la ligne de commande (dans un
« shell » Linux, ou bien dans une fenêtre DOS sous Windows) :
Les trois caractères >>> constituent le signal d'invite, ou prompt principal, lequel
vous indique que Python est prêt à exécuter une commande.
Calculer avec Python en mode interactif
1. utiliser l'interpréteur comme une simple calculatrice de bureau.
2. tester des commandes, comme :
>>> 5+3
>>> 2 - 9 # les espaces sont optionnels
>>> 7 + 3 * 4 # la hiérarchie des opérations mathématiques
>>> (7+3)*4
>>> 20 / 3
Les parenthèses sont fonctionnelles.
• Introduction au langage
Partie 1 Python et ses fondamentaux
Syntaxe de base
Données et variables
1. Un programme d'ordinateur consiste à manipuler des données.
2. Ces données peuvent être très diverses mais dans la mémoire de l'ordinateur
elles se ramènent toujours et en définitive à une suite finie de nombres binaires.
Mémoire
@
Taille 1110000000011
@ 1110001110011
Prix_Unitaire 1110001110000
@
Quantité 0000001110011
0000000000011
.
.
.
Une variable apparaît dans un langage de programmation sous un nom de variable, mais
pour l'ordinateur il s'agit d'une référence désignant une adresse mémoire, c'est-à-dire un
emplacement précis dans la mémoire vive.
Données et variables
Une variable est caractérisée par:
§ Un identificateur unique
§ Un type: c’est @ Mémoire sur le contenu de la variable qui indique
une information
à PythonTaille
la manière1110000000011
de manipuler cette variable
@
Comme le typage est 1110001110000
Prix_Unitaire dynamique en Python, le type n’est pas précisé
@
explicitement
Quantité: il est implicitement liée à l’information manipulée.
0000001110011
0000000000011
.
.
.
Noms de variables et mots réservés
Les noms de variables sont des noms qu’on choisit assez librement
De préférence assez courts, mais aussi explicites que possible, pour
exprimer clairement ce que la variable est censée contenir :
altitude, altit ou alt (au lieu de x ) pour exprimer une altitude
prix_unit pour exprimer un prix unitaire, etc.
Quelques règles pour les noms de variables sous Python :
1. Un nom de variable est une séquence de lettres (a à z , A à Z) et de chiffres (0 à 9), qui
doit toujours commencer par une lettre.
2. Seules les lettres ordinaires sont autorisées. Les lettres accentuées, les cédilles, les
espaces, les caractères spéciaux tels que $, #, @, etc. sont interdits, à l'exception du
caractère _ (souligné).
3. La casse est significative (les caractères majuscules et minuscules sont distingués).
Attention : Joseph, joseph, JOSEPH sont donc des variables différentes. Soyez attentifs !
4. Prenez l'habitude d'écrire l'essentiel des noms de variables en caractères minuscules (y
compris la première lettre). Il s'agit d'une simple convention, mais elle est largement
respectée. N'utilisez les majuscules qu'à l'intérieur même du nom, pour en augmenter
éventuellement la lisibilité, comme dans TableDesMatieres.
Noms de variables et mots réservés
En plus de ces règles, il faut encore ajouter que vous ne pouvez pas utiliser
comme noms de variables les 29 « mots réservés » au langage ci-
dessous :
Les constantes
• Pour leur première initialisation, une variable reçoit généralement une
constante,
• Les constantes sont
@ le Mémoire
contraire des variables,
Taille 1110000000011
• Ce sont toutes les
@ valeurs numériques, chaines de caractères,…, tout ce
Prix_Unitaire 1110001110000
qui n’est pas désigné
@
par un nom
Quantité 0000001110011
0000000000011
.
Les constantes possède
. un type mais pas d’identificateur
.
Affectation
Nous savons désormais comment choisir judicieusement un nom de variable.
Voyons à présent comment nous pouvons en définir et affecter une valeur.
En Python comme dans de nombreux autres langages, l'opération d'affectation
est représentée par le signe égal :
Mémoire
@
n 7 en binaire
@
On peur affecter a unemsg
variable le contenu
« quoi ded'une
neuf »autre variable
en binaire…
@
Pi 3,14159
On peur incrémenter la valeur d'uneenmême . variable sans utiliser une deuxième
binaire
variable .
.
Affectation multiples
• Plusieurs variables peuvent être affectées en même temps
• Plusieurs variables peuvent être initialisées par la même valeur
Mémoire
@
n 7 en binaire
@
msg « quoi de neuf »
en binaire…
@
Pi 3,14159
en binaire
.
.
.
Afficher la valeur d'une variable
Pour afficher la valeur à l'écran, il existe deux possibilités. :
1. La première consiste à entrer au clavier le nom de la variable, puis <Enter>.
2. A l'intérieur d'un programme, vous utiliserez toujours l'instruction print :
pas de guillemets.
affiche les apostrophes, donc le type.
Les Commentaires sous Python
• Un commentaire est une information aidant à la compréhension du programme
mais n’en faisant pas partie
• Le symbole # marque le début d’un commentaire que la fin de ligne termine
• Exemples:
• Vous pouvez écrire un commentaire multi-ligne, en commençant chaque ligne
avec #,
• vous pouvez inclure le bloc entier dans un ensemble de guillemets (" " " )
Instruction sur plusieurs lignes:
• Python impose une instruction par ligne.
• Ils n’est pas possible d’utiliser deux lignes pour écrire une affectation à moins de
conclure chaque ligne qui n’est pas la dernière par le symbole \
• L’exemple suivant est incorrect:
Il devrait être rédigé comme suit:
Saisie de données
• Pour lire ce qui va saisir un utilisateur au clavier on utilise la fonction input().
Affichage des résultats
• Pour afficher un message ou un résultat à l’écran on utilise la fonction print().
Types et variables du langage Python
Types immutables
o Type "rien" ou None
Python propose un type None qui signifie qu’une variable ne contient rien.
La variable de type None est égale à None.
Types immutables
o Nombres réels et entiers
Existe deux types de nombres en Python: float et int
• L’exemple suivant affiche les variables x et y, leur valeurs et leurs types respectifs
grâce à la fonction type:
Types immutables
o Nombres réels et entiers
Opérateurs qui s’appliquent aux nombres réels et entiers
Conversion de type: les fonctions int et float permettent de convertir un nombre
quelconque ou une chaîne de caractères respectivement en un entier et un
nombre réel.
Il peut arriver que la conversion en un nombre entier ne soit pas directe. Dans
l’exemple suivant, on cherche à convertir une chaîne de caractères en entier
mais cette chaîne représente un réel.
Types immutables
o Nombres réels et entiers
Opérateurs qui s’appliquent aux nombres réels et entiers
Types immutables
o Nombres réels et entiers
Opérateurs qui s’appliquent aux nombres réels et entiers
Types immutables
o Nombres réels et entiers
Priorité des opérations PEMDAS pour le mémoriser !
1. P pour parenthèses. Ce sont elles qui ont la plus haute priorité. Elles vous
permettent donc de « forcer » l'évaluation d'une expression dans l'ordre que
vous voulez. Ainsi 2*(3-1) = 4 , et (1+1)**(5-2) = 8.
2. E pour exposants. Les exposants sont évalués avant les autres opérations.
Ainsi 2**1+1 = 3 (et non 4), et 3*1**10 = 3 (et non 59049 !).
3. M et D pour multiplication et division, qui ont la même priorité. Elles sont
évaluées avant l'addition A et la soustraction S, lesquelles sont donc
effectuées en dernier lieu. Ainsi 2*3-1 = 5 (plutôt que 4), et 2/3-1 = -1
(Rappelez-vous que par défaut Python effectue une division entière).
4. Si deux opérateurs ont la même priorité, l'évaluation est effectuée de
gauche à droite. Ainsi dans l'expression 59*100/60, la multiplication est
effectuée en premier, et la machine doit donc ensuite effectuer 5900/60, ce
qui donne 98. Si la division était effectuée en premier, le résultat serait 59
(rappelez-vous ici encore qu'il s'agit d'une division entière).
Types immutables
o Booléen
Les booléens sont le résultat d’opérations logiques (and (et logique), or (ou logique),
not(négation logique)) et opérateurs de comparaison (<, >, <=, >=, ==, !=) et ont deux
valeurs possibles: True ou False.
Types immutables
o Booléen
Il existe deux autres mots-clés qui retourne un résultat de type
booléen: is (test d’identification) et in (test d’appartenance)
Ces deux opérateurs seront utilisés ultérieurement, in avec les
listes, les dictionnaires, les boucles, is lors de l’étude des listes
et des classes.
Types immutables
o Chaînes de caractères
• Le terme « chaîne de caractères » ou string en anglais signifie une suite finie
de caractères, autrement dit, du texte.
• Une chaîne est compris entre deux guillemets ou deux apostrophe.
Types immutables
o Chaînes de caractères
• Le terme « chaîne de caractères » ou string en anglais signifie une suite finie
de caractères, autrement dit, du texte.
• Une chaîne est compris entre deux guillemets ou deux apostrophe.
Pour écrire une chaine sur plusieurs lignes on utilise le symbole \ comme
l’exemple suivant:
Remarques:
il ne doit rien y avoir après le
symbole \ (sur la même ligne)
pas d’espace ni de commentaire
Types immutables
o Chaînes de caractères
Les extra-caractères les plus utilisés sont :
\" : guillemets
\’ : apostrophe
\n : passage à la ligne
\\ : insertion du symbole \
Le préfixe r signifie raw string (chaîne brute).
Python n’interprète plus les antislashs comme des
\% : pourcentage
échappements, il les affiche tels quels.
\t : tabulation
\r : retour à la ligne
Types immutables
o Chaînes de caractères
Une chaîne de caractères est semblable à un tableau et certains opérateurs qui
s’appliquent aux tableau s’appliquent également aux chaînes.
Types immutables
o Chaînes de caractères
• La fonction str: permet de convertir un nombre, un tableau, un objet en chaîne
de caractères afin de pouvoir l’afficher.
• La fonction len: retourne la longueur de la chaîne
Types immutables
o Chaînes de caractères
Il existe d’autres fonctions pour manipuler les chaînes de caractères. Elles sont
utilisées comme suit:
res=[Link]()
Où s est une chaine , fonction est le nom de l’opération que l’on veut appliquer à
s et res le résultat de cette manipulation.
Types immutables
o Le type Tuple
• T-uple est un tableau d’objets qui peuvent être de tout type. Il n’est pas modifiables.
• Un T-uple apparît comme une liste d’objets comprise entre parenthèses et séparés
par des virgules.
Leur création reprend le même format:
Types immutables
o Le type Tuple
Opérations possibles sur les T-uples
Types immutables
o Le type Tuple
Remarque
Types mutables
o Les Listes
• Elles sont des collections d’objets qui peuvent être de tout type,
• Elles sont modifiables.
• Une liste apparaît comme une succession d’objets compris entre crochets et
séparés par des virgules.
• Leur création reprend le même format donné par l’exemple suivant:
Types mutables
o Les Listes
Opérations disponibles sur les listes
Types mutables
o Les Listes
Opérations disponibles sur les listes
Types mutables
o Les Listes
Types mutables
o Les Listes
Types mutables
o Les Listes
Fonction range:
• Les listes sont souvent utilisées dans des boucles par l’intermédiaire de la fonction
range. Cette fonction retourne une liste d’entiers.
Syntaxe: range (début, fin [, marche])
• Elle retourne une liste incluant tous les entiers entre début et fin exclu.
• Si le paramètre facultatif marche est renseigné, la liste contient tous les entiers n
compris début et fin exclu et tels que n-début soit un multiple de marche.
Types mutables
o Les Listes
Fonction range:
Afficher les éléments d’une liste en utilisant range
Types mutables
o Les Listes
l’opérateur in
§ Il est possible de ne pas se servir des indices comme intermédiaires pour accéder aux
éléments d’une liste quand il s’agit d’effectuer un même traitement pour tous les éléments
de la liste.
§ Création d’une liste à partir du résultat retourné par la fonction range en utilisant
l’opérateur in:
Types mutables
o Les dictionnaires
• Une liste référence les éléments en leur donnant une position (indice). Un dictionnaire
permet d’associer à un élément autre chose qu’une position entière : ce peut être un entier, un
réel, une chaine de caractères, un T-uple contenant des objets immutables. De manière
générale, un dictionnaire associe à une valeur une clé de type immutable. Cette clé permettra
de retrouver la valeur associé.
• Un dictionnaire est une liste de couples. Chaque couple contient une clé et une valeur.
Chaque valeur est indicée par sa clé. La valeur peut-être de tout type , la clé doit être de type
immutable, ce ne peut donc être ni une liste, ni un dictionnaire. Chaque clés comme chaque
valeur peut avoir un type différent des autres clés ou valeurs.
Types mutables
o Les dictionnaires
Un dictionnaire apparaît comme une succession de couples d’objets comprise entre
accolades et séparés par es virgules. La clé et la valeur sont séparées par le symbole :
Types mutables
o Les dictionnaires
• La plupart des fonctions pour les listes sont interdites pour les dictionnaires comme
la concaténation ou l’opération de multiplication (*).
• Il n’existe non plus d’indices entiers pour repérer les éléments, le seul repère est
leur clé.
• Contrairement à une liste, un dictionnaire ne peut pas être trié car sa structure
interne est optimisée pour effectuer des recherches rapides parmi les éléments.
Types mutables
o Les dictionnaires
Opérations disponibles sur les dictionnaires, d dictionnaire et x quelconque:
Types mutables
o Les dictionnaires
Exemples:
Types mutables
o Les dictionnaires
Opérations disponibles sur les dictionnaires (d et d2 sont des dictionnaire et x quelconque)
Types mutables
o Les dictionnaires
Il n’est pas possible de trier un dictionnaire. L’exemple ci-dessous permet néanmoins
d’afficher tous les éléments d’un dictionnaire selon l’ordre croissant des clés
Types mutables
o Les dictionnaires
Types mutables
o Les dictionnaires
Copie d’un dictionnaire:
Les dictionnaire sont des objets et une affectation, n’est pas équivalente à une copie comme le
montre l’exemple suivant:
Types mutables
o Les dictionnaires
Copie d’un dictionnaire:
Pour copier un dictionnaire il faut utiliser la fonction copy du module copy