Introduction à la Programmation Orientée Objet
Introduction à la Programmation Orientée Objet
OBJET
Partie 1: APPRÉHENDER LE
PARADIGME DE LA POO
Chapitre 1 : Introduction à la
POO
Chapitre 2 : PARADIGME
OBJET
NTIC 2024-2025
4 INTRODUCTION
Dans la programmation procédurale, le programme est divisé en petites parties appelées procédures ou
fonctions.
• Ensuite, pour résoudre chaque partie, une ou plusieurs procédures/fonctions sont utilisées.
• Dans la programmation procédurale, les notions de données et de traitement de ces données sont
séparées. Inconvénients:
• Difficulté de réutilisation du code.
• Difficulté de la maintenance de grandes applications.
Au fur et à mesure que les programmes écrits avec une
approche procédurale grossissent, ils deviennent fragiles et
mettent en danger les données.
NTIC 2024-2025
5 INTRODUCTION
Pourquoi ne pas considérer que les programmes sont avant tout des ensembles
NTIC 2024-2025
6 INTRODUCTION
Les langages orientés objets sont nés pour répondre à ces questions.
Ils sont fondés sur la connaissance d’une seule catégorie d’entités informatiques : LES OBJETS
Ainsi, un objet est une entité qui regroupe des propriétés statiques et d'autres dynamiques.
Un paradigme est une théorie qui fournit la base de la résolution des problèmes.
NTIC 2024-2025
7 INTRODUCTION
Objectifs et Avantages de la POO
Objectif :
Faciliter la conception, l'exploitation et la maintenabilité de gros programmes.
Avantages:
• Modularité : les objets forment des modules compacts regroupant des données et un ensemble d'opérations ce qui
réduit la complexité de l’application (classe = module)
• Abstraction :
Les entités objets de la POO sont proches de celles du monde réel (objet est un compte, stagiaire, etc…).
La POO se base sur un processus qui consiste à masquer des détails non pertinents à l’utilisateur.
• Réutilisabilité:
définition d’une relation d’héritage entre les entités logicielle évite la duplication de code → Facilité de la
maintenance logicielle et amélioration de la productivité
NTIC 2024-2025
8 INTRODUCTION
Brève historique de l’évolution des langages de programmation Orientée
Objet
NTIC 2024-2025
9 PRGRAMMATION ORIENTEE OBJET
Partie 1:APPRÉHENDER LE
PARADIGME DE LA POO
Chapitre 1 : Introduction à la
POO
Chapitre 2 : PARADIGME
OBJET
NTIC 2024-2025
10
PARADIGME OBJET
1- Classe
à des variables, qui représentent les divers attributs de l'élément que vous souhaitez utiliser ;
Une classe contient donc des variables et des méthodes, qui forment un tout.
NTIC 2024-2025
11 PARADIGME OBJET
NTIC 2024-2025
12 PARADIGME OBJET
NTIC 2024-2025
13 PARADIGME OBJET
Syntaxe de déclaration d’une classe:
Exemple:
La première lettre du nom d’une classe doit toujours être une lettre majuscule (ex : Chat).
NTIC 2024-2025
14 PARADIGME OBJET
NTIC 2024-2025
15
PARADIGME OBJET
Accès aux attributs
Pour accéder à un attribut d’un objet on indique le nom de la référence de l'objet suivi par le nom de l’attribut dans
l’objet de la manière suivante :
NTIC 2024-2025
16
PARADIGME OBJET
Définir une variable de classe qui est partagée entre toutes les instances d'une même classe.
Accès :
NTIC 2024-2025
17 PARADIGME OBJET
Syntaxe de déclaration d’un attribut :
NTIC 2024-2025
18
PARADIGME OBJET
3- Méthode
Les méthodes sont des fonctions qui implémentent les traitements de la classe.
NTIC 2024-2025
19 PARADIGME OBJET
A part le premier paramètre qui doit de préférence s’appeler self, la syntaxe de définition
d’une méthode ressemble en tout point à celle d’une fonction. Le corps de la méthode est
indenté par rapport à la déclaration de la méthode, elle-même indentée par rapport à la
déclaration de la classe.
NTIC 2024-2025
20 PARADIGME OBJET
Méthodes de classe ou méthodes statiques
Une méthode statique peut être appelée sans instance. De ce fait, le paramètre
Self est inutile.
NTIC 2024-2025
21
PARADIGME OBJET
4-Constructeur et instanciation
NTIC 2024-2025
22 PARADIGME OBJET
• Par défaut, toute classe en Python a un constructeur par défaut sans paramètre
• Le constructeur par défaut n’existe plus si la classe présente un constructeur à
paramètre.
• Contrairement à d'autres langues, la classe de Python n'a qu'un seul constructeur.
NTIC 2024-2025
23 PARADIGME OBJET
NTIC 2024-2025
24 PARADIGME OBJET
L’exemple suivant montre deux classes pour lesquelles un constructeur a été défini.
• La première n’ajoute aucun paramètre, la création d’une instance ne nécessite pas de
paramètre supplémentaire.
NTIC 2024-2025
25
PARADIGME OBJET
4- Objet
Par exemple :
NTIC 2024-2025
26
PARADIGME OBJET
Lorsque l'on crée un objet, on réalise ce que l'on appelle une « instance de
la classe ». C'est à dire que du moule, on en extrait un nouvel objet qui
dispose de ses attributs et de ses méthodes. L'objet ainsi créé aura pour
type le nom de la classe.
Par exemple, les objets Mohamed, Rayane, Nada, Dounia sont des instances
(objets) de la classe Personne.
NTIC 2024-2025
27 PARADIGME OBJET
Exemple complet :
NTIC 2024-2025
28 PARADIGME OBJET
NTIC 2024-2025
29 PARADIGME OBJET
• les destructeurs ne sont pas nécessaires car Python dispose d'un ramasse-miettes
assurant le gestion automatiquement de la mémoire.
• La méthode __del __ () est une méthode appelée destructeur en Python. Il est appelé
lorsque toutes les références à l’objet ont été supprimées, c’est-à-dire lorsqu’un objet est
nettoyé.
Syntaxe de destructeur :
NTIC 2024-2025
30 Exercice :
Classe Rectangle :
NTIC 2024-2025
31 PARADIGME OBJET
• les destructeurs ne sont pas nécessaires car Python dispose d'un ramasse-miettes
assurant le gestion automatiquement de la mémoire.
• La méthode __del __ () est une méthode appelée destructeur en Python. Il est appelé
lorsque toutes les références à l’objet ont été supprimées, c’est-à-dire lorsqu’un objet est
nettoyé.
Syntaxe de destructeur :
NTIC 2024-2025
32 PARADIGME OBJET
NTIC 2024-2025
33 PARADIGME OBJET
NTIC 2024-2025
34
Exercice :
Class Book
1. Définir une classe Book avec les attributs suivants : Title, Author (Nom complet), Price.
3. Définir une variable de classe cpt, qui a pour rôle de calculer le nombre des instances créées.
4. Définir la méthode View() pour afficher les informations d'une instance object Book.
NTIC 2024-2025
35 PARADIGME OBJET
Apport du langage Python
NTIC 2024-2025
36 PARADIGME OBJET
L’attribut spécial _ _dict_ _
Cet attribut spécial donne les valeurs des attributs de l'instance :
Fonction dir
La fonction dir donne un aperçu des méthodes de l'objet :
NTIC 2024-2025
37 PARADIGME OBJET
Affichage d’un objet
_ _str_ _ : vous donne la possibilité de redéfinir l’affichage d’un objet
NTIC 2024-2025
38 PARADIGME OBJET
Ajout d'un attribut d'instance
Il est possible d'ajouter un attribut uniquement pour une instance donnée
via la syntaxe suivante :
instance.nouvel_attribut = valeur
NTIC 2024-2025
39
Exercices
NTIC 2024-2025
40 Exercice :
Gestion produits :
Chaque produit est caractérisé par sa référence, sa désignation, son prix d’achat, son prix de vente, le nombre d’exemplaires en stock; le
nombre de produit A la création du produit, on lui attribue une référence, un prix d’achat, un prix de vente, un stock nul (quantité=0), et une
désignation (petite description du produit). Parmi les fonctionnalités attendues de l’application de gestion de stock, relative au produit, est de
pouvoir retourner le nombre de produits existants, afficher les informations relatives à un produit, modifier son prix d’achat et son prix de vente,
augmenter ou diminuer le nombre d’exemplaires en stock
Les sorties de stock sont gérées à travers les commandes. Une commande est caractérisée par sa date de création et un ensemble de produits
avec les quantités qu’on va livrer (vendre).
Questions:
2. Précisez pour chaque classe: les attributs (d’instance ou de classe) et les méthodes.
NTIC 2024-2025
42 PRGRAMMATION ORIENTEE OBJET
Chapitre 2 : Encapsulation
Chapitre 3 : Polymorphisme
NTIC 2024-2025
43 L’HERITAGE
2-Heritage
• L'héritage est une notion qui définit une relation de spécialisation ou de généralisation entre
différentes classes
NTIC 2024-2025
44 L’HERITAGE
Exemple :
• Considérons la définition des 3 classes Personne, Etudiant et Employé suivantes
Problème :
• Duplication du code.
• Toute modification d'un attribut ou d'une méthode doit être répétée dans chaque classe
où ils ont été déclarés. (Exp : si on souhaite modifier le type de l'attribut anneeNaiss, il faut
le faire dans chacune des 3 classes).
NTIC 2024-2025
45 L’HERITAGE
Solution :
• Placer dans la classe mère les propriétés en commun à toutes les autres classes.
d'être réécrits.
NTIC 2024-2025
46 L’HERITAGE
Intérêt de l’héritage
NTIC 2024-2025
47 L’HERITAGE
Héritage unique
L’héritage unique permet à une classe dérivée d’hériter des propriétés d’une
seule classe parente, permettant ainsi la réutilisation du code et l’ajout de
nouvelles fonctionnalités au code existant
Syntaxe en Python
NTIC 2024-2025
48 L’HERITAGE
Exemple :
NTIC 2024-2025
49 L’HERITAGE (Exemple complet)
NTIC 2024-2025
50 L’HERITAGE
Héritage en cascade
NTIC 2024-2025
51 L’HERITAGE
Exemple :
NTIC 2024-2025
52 L’HERITAGE
Héritage multiple
Exemple :
NTIC 2024-2025
53 L’HERITAGE Multiple(Exemple complet)
NTIC 2024-2025
54 PRGRAMMATION ORIENTEE OBJET
Chapitre 2 : Encapsulation
Chapitre 3 : Polymorphisme
NTIC 2024-2025
55 ENCAPSULATION
NTIC 2024-2025
56 ENCAPSULATION
La visibilité des attributs définit les droits d’accés aux données d’une classe :
• Publique (+) :
Toute classe peut accéder aux données d’une classe définie
avec le niveau de visibilité publique.
• Protégée (#) :
L’accés aux données est réservé aux méthodes des classes
héritières
• Privée (-) :
L’accés aux données est limite aux méthodes de la classe elle-même
NTIC 2024-2025
57 ENCAPSULATION
Modificateur d’accès public en python
Tous les membres de données et les fonctions membres d’une classe sont
publics par défaut
NTIC 2024-2025
58 ENCAPSULATION
Les membres d’une classe déclarés protégés ne sont accessibles qu’à une classe qui en
dérive ( héritage ).
classe
NTIC 2024-2025
59 ENCAPSULATION
Les membres d’une classe qui sont déclarés privés sont accessibles
uniquement dans la classe, le modificateur d’accès privé est le
modificateur d’accès le plus sécurisé.
NTIC 2024-2025
60 ENCAPSULATION
NTIC 2024-2025
61 ENCAPSULATION
On ne peut atteindre les attributs d’un objet que par l’intermédiaire de ses méthodes.
Les accesseurs et modificateurs : Un accesseur est une méthode qui va nous permettre
d'accéder aux variables des objets en lecture et un mutateur, en écriture .
Accesseurs (getters): Méthodes qui retournent la valeur d’un attribut d’un objet (un
attribut est généralement privé)
Modificateurs (setters): Méthodes qui modifient la valeur d’un attribut d’un objet
NTIC 2024-2025
63 Exercice :
Définir une classe Salarie avec son constructeur avec ses attributs privés et deux méthodes :
❑ Une méthode CalculSalaire() : qui renvoie le calcul du salaire annuel (salaire *12)
NTIC 2024-2025
64 ENCAPSULATION
En Python property() est une fonction intégrée qui crée et renvoie un objet de
propriété. Un objet de propriété a trois méthodes, getter(), setter() et delete().
NTIC 2024-2025
65 ENCAPSULATION
property (fget, fset, fdel,doc)
NTIC 2024-2025
66 ENCAPSULATION
Utilisation de @property
@property est un décorateur qui évite d'utiliser la fonction getter explicite
@[Link] est un décorateur qui évite d'utiliser la fonction setter explicite
NTIC 2024-2025
67 Exercice
Vous devez créer un système de gestion de bibliothèque en utilisant la programmation orientée
objet en Python. Ce système permettra de gérer différents types de documents dans une
bibliothèque.
[Link] Document (classe de base) :
•Attributs privés : titre, auteur, année de publication, statut d'emprunt
•Getters et setters pour tous les attributs
•Une méthode __str__ pour afficher les informations du document
Classe Livre (hérite de Document) :
•Attributs privés supplémentaires : ISBN et nombre de pages
•Getters et setters spécifiques
•Redéfinition de la méthode __str__
NB: Dans le fichier main créer des objet livre, modifier les attributs et afficher dans le main les
attributs modifier
NTIC 2024-2025
68 Exercice
NTIC 2024-2025
69 Getters/Setters
class Personne:
def __init__(self, nom):
self.__Nom = nom
Chapitre 2 : Encapsulation
Chapitre 3 : Polymorphisme
NTIC 2024-2025
71
class Calculateur:
def __init__(self, n):
[Link] = n
def afficher(self):
print([Link])
def addition(self, a, b, c=1):
return a + b + c
calc = Calculateur()
NTIC 2024-2025
73 LE POLYMORPHISME
3- Le polymorphisme
(redéfinition de la méthode).
NTIC 2024-2025
74 LE POLYMORPHISME
Surcharge des constructeurs
• Les constructeurs portant le même nom mais une signature différente sont appelés
constructeurs surchargés
• La signature d’un constructeur comprend les types des paramètres et le nombre des
paramètres.
• Dans une classe, les constructeurs peuvent avoir différents nombres d'arguments,
différentes séquences d'arguments ou différents types d'arguments
NTIC 2024-2025
76 LE POLYMORPHISME
Redéfinition des méthodes héritées
• La redéfinition d'une méthode héritée est motivée par le fait que sa version, dans la classe
• La redéfinition permet alors de proposer un code différent à une méthode héritée tout en
gardant son entête. Autrement, il ne peut s'agir d'une redéfinition mais d'une nouvelle
• A partir d'une classe fille, il est possible, à tout moment, d'invoquer une méthode redéfinie,
NTIC 2024-2025
77 LE POLYMORPHISME
NTIC 2024-2025
78 LE POLYMORPHISME
NTIC 2024-2025
79 LE POLYMORPHISME
Chainage des constructeurs
NTIC 2024-2025
80 LE POLYMORPHISME
Exemple :
NTIC 2024-2025
81 LE POLYMORPHISME
Surcharge des opérateurs en Python
NTIC 2024-2025
82 LE POLYMORPHISME
Fonctions spéciales de surcharge de l'opérateur en Python
NTIC 2024-2025
83 LE POLYMORPHISME
Opérateurs de comparaison
• En Python, il est possible de surcharger les opérateurs de comparaison
NTIC 2024-2025
84 LE POLYMORPHISME
NTIC 2024-2025
85 EXERCICE
Exercice 1
Les Pokémons sont des gentils animaux qui sont passionnés par la programmation objet en général et par le
polymorphisme en particulier.
- Les pokémons sportifs : Ces pokémons sont caractérisés par un nom, un poids (en kg), un nombre de pattes, une
taille (en mètres) et une fréquence cardiaque mesurée en nombre de pulsations à la minute. Ces pokémons se
déplacent sur la terre à une certaine vitesse que l’on peut calculer grâce à la formule suivante : vitesse = nombre
de pattes * taille * 3
- Les pokémons casaniers : Ces pokémons sont caractérisés par un nom, un poids (en kg), un nombre de pattes,
une taille (en mètres) et le nombre d’heures par jour où ils regardent la télévision. Ces pokémons se déplacent
également sur la terre à une certaine vitesse que l’on peut calculer grâce à la formule suivante : vitesse = nombre
de pattes * taille * 3
- Les pokémons des mers : Ces pokémons sont caractérisés par un nom, un poids (en kg) et un nombre de
nageoires. Ces pokémons ne se déplacent que dans la mer à une vitesse que l’on peut calculer grâce à la
formule suivante : vitesse = poids / 25 * nombre de nageoires
NTIC 2024-2025
86 EXERCICE
Pour chacune de ces trois catégories de pokémons, on désire disposer d’une méthode __str__ qui retourne (dans
une chaîne de caractères) les caractéristiques du pokémon.
"Je suis le pokémon Pikachu mon poids est de 18 kg, ma vitesse est de 5,1 km/h j'ai 2 pattes, ma taille est de
0,85m ma fréquence cardiaque est de 120 pulsations à la minute"
"Je suis le pokémon Salameche mon poids est de 12 kg, ma vitesse est de 3,9 km/h j'ai 2 pattes, ma taille est de
0,65m je regarde la télé 8h par jour"
"Je suis le pokémon Rondoudou mon poids est de 45 kg, ma vitesse est de 3,6 km/h j'ai 2 nageoires"
Considérons une classe appelée Point ayant deux attributs privés _ _abs (abscisse du point) et
_ _ord (ordonnée du point) et un attribut statique nb qui représente le nombre de point crées
2. Définissez les getters et setters pour les deux attributs en utilisant le décorateur @property
NTIC 2024-2025
88 EXERCICE
5. Ecrivez la méthode calculerdistance(self) qui permet de calculer la distance entre le point de
l’objet courant (self) et l’objet p passé en paramètre.
Nous rappelons que la distance entre deux points A(x1,y1) et B(x2,y2), en mathématiques, est égale
à: AB=√(𝒙𝟐−𝒙𝟏)𝟐+(𝒚𝟐−𝒚𝟏)𝟐
Vous pouvez utiliser la fonction [Link](a) pour calculer la racine carrée de a et [Link](x, y)
pour calculer x puissance y
Considérons maintenant une deuxième classe appelée TroisPoints ayant les attributs __point1, __
point2 et __ point3 qui sont de type Point
9. Ecrivez une méthode estisocèle(self) qui retourne True si les trois points point1,
point2 et point3 forment un triangle isocèle, False sinon. Nous rappelons qu’un
triangle ABC est isocèle si AB = AC ou AB = BC ou BC = AC.
10. Implémentez une version statique (méthode décorée par @staticmethod) des
deux méthodes calculant la distance et le milieu.
11. Dans un fichier [Link], testez toutes les classes et méthodes que vous avez
implémentées.
NTIC 2024-2025
90
NTIC 2024-2025
91
CARACTÉRISER L’ABSTRACTION
1- Classe abstraite
L’abstraction est très utile lors de la conception de systèmes complexes pour limiter
2-Methode abstraite
• Une méthode abstraite est une méthode qui ne contient pas de corps. Elle
possède simplement une signature de définition (pas de bloc d'instructions)
• Il n'est pas indispensable d'avoir des méthodes abstraites dans une classe
abstraite.
NTIC 2024-2025
93
CARACTÉRISER L’ABSTRACTION
Remarque:
• Une sous-classe d'une classe abstraite ne peut être instanciée que si elle
redéfinit chaque méthode abstraite de sa classe parente et qu'elle fournit une
implémentation (un corps) pour chacune des méthodes abstraites
NTIC 2024-2025
94
CARACTÉRISER L’ABSTRACTION
Une classe abstraite hérite de la classe ABC ( Abstract base class)
NTIC 2024-2025
95 CARACTÉRISER L’ABSTRACTION
Exercice : Gestion des objets à expédier dans une poste
On souhaite concevoir des classes et un programme qui pourront être utiles à un employé de poste pour traiter des objets à expédier.
1. Définir une classe ObjetPostal dont les caractéristiques sont les suivantes :
·le nom du destinataire , l'adresse du destinataire , le code postal, le nom de la ville destination , et un booléen qui indique si l'objet doit être
expédié en recommandé ou pas.
Dans un premier lieu il faut créer une classe ObjetPostal simple avec les données citées en haut,
En fait, la classe ObjetPostal ne correspond en réalité à aucun objet existant (classe abstraite), elle ne fait que rassembler les caractéristiques
communes à tous les objets postaux réellement manipulés par l’application, qui seront des instances des classes Lettre et Colis que nous
allons définir ci-dessous.
Une conséquence de ceci est que la méthode prix de la classe ObjetPostal n'a aucune définition, elle sera définie effectivement dans les
sous-classes.
Ceci fera sujet d’exercice d’application lorsqu’on aura fait la notion de classe abstaite
NTIC 2024-2025
96 CARACTÉRISER L’ABSTRACTION
2. Définir une classe Lettre, sous-classe d’ObjetPostal, et qui possède, hormis les données héritées, une donnée de type booléen
qui indique si la lettre doit être expédiée en urgence ou pas.
Cette classe sera munie d'un constructeur, et calculera le prix d'affranchissement de la façon suivante :
3. Définir une classe Colis, sous-classe de ObjetPostal, et qui possède, hormis les données héritées, une donnée de type réel qui
donne le poids du colis, exprimé en grammes.
Cette classe sera munie d'un constructeur, et calculera le prix d'affranchissement de la façon suivante :
· le prix d'affranchissement normal est calculé sur la base de 0.8 euros par unité de poids de
100 grammes,
4. Réaliser un test (main) qui permet de calculer le prix à payer pour envoyer un objet postal.
NTIC 2024-2025
97
CARACTÉRISER L’ABSTRACTION
Remarque : Interface
• Une interface est une forme particulière de classe où toutes les méthodes sont abstraites
• Spécifier des propriétés qui peuvent être utilisées par les classes qui implémentent ces
interfaces.
• Obliger les classes qui les implémentent de définir les méthodes abstraites déclarées dans
les interfaces.
• Tirer profit du polymorphisme avec des instances dont les classes ne font pas partie de la
même hiérarchie d’héritage.
NTIC 2024-2025
98 CARACTÉRISER L’ABSTRACTION
• Si une classe implémente plus d'une interface, elle doit implémenter toutes
les méthodes abstraites de chacune des interfaces.
NTIC 2024-2025
99 CARACTÉRISER L’ABSTRACTION
Exemple:
NTIC 2024-2025
100
CARACTÉRISER L’ABSTRACTION
Utilité des interfaces
NTIC 2024-2025
101
NTIC 2024-2025
102
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
1-Les listes
• Une liste est une collection qui est ordonnée, modifiable et qui peuvent contenir
plusieurs fois la même valeur ;
NTIC 2024-2025
103
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
La fonction Utilisation
NTIC 2024-2025
104
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
La fonction Utilisation
[Link]() Inverser la liste sur place
NTIC 2024-2025
105
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
106
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
107
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
108
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
109 Exercice (déjà fait)
Vous devez créer un système de gestion de bibliothèque en utilisant la programmation
orientée objet en Python. Ce système permettra de gérer différents types de documents dans
une bibliothèque.
[Link] Document (classe de base) :
•Attributs privés : titre, auteur, année de publication, statut d'emprunt
•Getters et setters pour tous les attributs
•Une méthode __str__ pour afficher les informations du document
Classe Livre (hérite de Document) :
•Attributs privés supplémentaires : ISBN et nombre de pages
•Getters et setters spécifiques
•Redéfinition de la méthode __str__
NTIC 2024-2025
110 Exercice
NTIC 2024-2025
111
Exercice: MANIPULER LES DONNÉES
Etagères de livres, tableaux d'objets
Créer le constructeur, la méthode _ _str ()_ _ qui retourne les informations sur un livre
Créez une classe Etagere pour représenter une étagère qui peut contenir un certain nombre de
livres (fixe pour chaque étagère). Vous utiliserez un tableau pour ranger les livres.
1- Créer le constructeur
Ajouter des livres Ajouter(Livre). Vous ajouterez les livres à la suite des livres déjà ajoutés
dans l'étagère ;(Il devra être impossible d'ajouter des livres dans une étagère pleine).
NTIC 2024-2025
112
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Récupérer un livre dont on donne la position sur l'étagère (le livre reste sur l'étagère, on
récupère simplement une référence sur le livre). La méthode renverra une instance de Livre.
La position du premier livre d'une étagère devra être 1 (et pas 0, bien que le livre soit rangé
dans la première position du tableau, qui est d'indice 0). La signature de la méthode sera "
getLivre(pos)".
Chercher sur l'étagère un livre repéré par son titre et son auteur. La méthode renverra la
position du livre dans l'étagère (ou 0 si le livre n'y est pas). La signature de la méthode sera
chercher(titre, auteur)". Ecrivez aussi 2 méthodes pour rechercher tous les livres d'un auteur,
ou tous les livres qui ont un certain titre. Cette fois-ci, les méthodes renvoient un tableau de
livres.
NTIC 2024-2025
113
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Enlever des livres. Vous "tasserez" les livres vers le début quand vous enlèverez des livres
une méthode qui repèrera le livre par sa position (1 pour le premier livre) dans l'étagère
(de profil "enleverLivre(pos)"),
NB : La méthode renverra le livre supprimé (ou null si le livre n'a pas été trouvé).
Renvoyer une description d'une étagère (la fameuse, et bien utile, méthode _ _str_ _()).
Utilisez-la dès le début, par exemple pour tester la méthode ajouter.
Dans la méthode main, vous créerez des livres, 2 étagères et ajouterez les livres dans les
étagères. Tester les méthodes de la classe étagère.
NTIC 2024-2025
114
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
2- Les collections
• Le module collections est un module standard de Python qui fournit des classes
spécialisées pour créer des conteneurs de données plus avancés que les types de
données de base tels que les listes, les tuples, les ensembles et les dictionnaires.
• Ce module contient plusieurs classes qui sont utiles pour manipuler et organiser des
données complexes.
NTIC 2024-2025
115
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
116
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Collection namedtuple
NTIC 2024-2025
117
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
118
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
119
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Collection deque
Les listes Python sont une séquence d'éléments ordonnés, mutable ou modifiable.
• Python peut ajouter des listes en temps constant mais l'insertion au début d'une liste peut être
plus lente (le temps nécessaire augmente à mesure que la liste s'agrandit).
Exemple :
NTIC 2024-2025
120
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
• La classe deque du module collections est un objet de type liste qui permet d'insérer des
éléments au début ou à la fin d'une séquence avec une performance à temps constant (O(1)).
• O(1) performance signifie que le temps nécessaire pour ajouter un élément au début de liste
n'augmentera pas, même si cette liste a des milliers ou des millions d'éléments.
NTIC 2024-2025
121
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
122
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Collection ChainMap
La classe [Link] permet de linker plusieurs mappings pour qu’ils soient gérés
comme un seul.
NTIC 2024-2025
123
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Collection Counter
La classe [Link] est une sous-classe de dict. qui permet de compter des objets
hachable.
• En fait c’est un dictionnaire avec comme clé les éléments et comme valeurs leur nombre.
NTIC 2024-2025
124
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
125
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
126
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Collection OrderedDict
Les [Link] sont comme les dict. mais ils
se rappellent l’ordre d’entree des valeurs. Si on itère
dessus les données seront retournées dans l’ordre d’ajout
dans notre dict.
• La fonction popitem(last=True) : fait sortir une paire clé
valeur de notre dictionnaire et si l’argument last est a
‘True’ alors les pairs seront retournées en LIFO sinon ce
sera en FIFO.
• La fonction move_to_end(key, last=True) : permet de
déplacer une clé a la fin de notre dictionnaire si last est a
True sinonNTIC
au2024-2025
debut de notre dict.
127
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Collection defaultdict
• defaultdict du module de collections qui permet de rassembler les informations dans les
dictionnaires de manière rapide et concise.
• Si une clé n'est pas présente, defaultdict se contente d'inserer et de renvoyer une valeur de
remplacement a la place.
• defaultdict se comporte différemment d'un dictionnaire ordinaire. Au lieu de soulever une KeyError
sur une clé manquante, defaultdict appelle la valeur de remplacement sans argument pour créer un
nouvel objet.
NTIC 2024-2025
129
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
130
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
3- Les fichiers
Type de fichier
Il existe différents formats standards de stockage de données.
Il est recommandé de favoriser ces formats car il existe déjà des modules Python permettant de simplifier leur
utilisation:
• Le fichier Texte (TXT) est un format permettant de stocker des données sous forme de texte brut. un fichier
texte n'a pas de structure prédéfinie. Il peut contenir des informations sous diverses formes.
• Le fichier Comma-separated values (CSV) est un format permettant de stocker des tableaux dans un
fichier texte. Chaque ligne est représentée par une ligne de texte et chaque colonne est séparée par un
séparateur (virgule, point-virgule …).
• Le format JavaScript Object Notation (JSON) est issu de la notation des objets dans le langage JavaScript,
Il s'agit aujourd'hui d'un format de données très répandu permettant de stocker des données sous une forme
structurée.
NTIC 2024-2025
131
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Manipuler un fichier texte
est un format permettant de stocker des données sous forme de texte brut. un fichier texte n'a pas de structure prédéfinie. Il peut
contenir des informations sous diverses formes.
o Python a plusieurs fonctions pour créer, lire, mettre à jour et supprimer des fichiers texte.
o La fonction clé pour travailler avec des fichiers en Python est open().
f =open(nomfichier,mode)
"a" -Ajouter -Ouvre un fichier à ajouter, crée le fichier s'il n'existe pas
"w" -Écrire -Ouvre un fichier pour l'écriture, crée le fichier s'il n'existe pas
"x" -Créer -Crée le fichier spécifié, renvoie une erreur si le fichier existe
NTIC 2024-2025
132
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
133
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
134
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
135
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Exemple :
Ecrire et lire une chaine dans un fichier texte
NTIC 2024-2025
136
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Exemple:
Ecrire et lire une chaine dans un fichier texte
NTIC 2024-2025
137
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Le fichier Texte (TXT) :
NTIC 2024-2025
138
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
139
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
140
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Lecture d’un fichier CSV
• Pour lire un fichier CSV, il faut ouvrir un flux de lecture de fichier et ouvrir à partir de ce flux un
lecteur CSV.
NTIC 2024-2025
141
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
• Il est également possible de lire les données et obtenir un dictionnaire par ligne contenant
les données en utilisant DictReader au lieu de reader
NTIC 2024-2025
142
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
NTIC 2024-2025
144
MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Lire un fichier JSON
• La fonction loads (texteJSON) permet de décoder le texte JSON passé en argument et de le
transformer en dictionnaire ou une liste
NTIC 2024-2025
145 MANIPULER LES DONNÉES: Liste, Collections, Fichiers
Exemple de creation d’un fichier JSON avec des objet Personne :
NTIC 2024-2025
146
NTIC 2024-2025
147 UTILISER LES EXPRESSIONS RÉGULIÈRE
Les expressions régulières fournissent une notation générale permettant de décrire
abstraitement des éléments textuels .
Elles utilisent six symboles de base qui, dans le contexte des expressions régulières,
acquièrent les significations suivantes :
1. le point . représente une seule instance de n'importe quel caractère sauf le caractère de fin
de ligne.
Exemple : l'expression t.c représente toutes les combinaisons de trois lettres commençant par
« t » et finissant par « c », comme tic, tac, tqc ou t9c
NTIC 2024-2025
148 UTILISER LES EXPRESSIONS RÉGULIÈRE
• Entre les crochets, on peut noter un intervalle en utilisant le tiret. Exemple : [0-9]
représente les chiffres de 0 à 9, et [a-zA-Z] représente une lettre minuscule ou majuscule.
• On peut de plus utiliser l'accent circonflexe en première position dans les crochets pour
indiquer le contraire Exemple : [^a-z] représente autre chose qu'une lettre minuscule, et
[^'"] n'est ni une apostrophe ni un guillemet.
NTIC 2024-2025
149 UTILISER LES EXPRESSIONS RÉGULIÈRE
Exemple : L'expression ab* signifie la lettre a suivie de zéro ou plusieurs lettres b, par
exemple ab, a ou abbb et [A-Z]* correspond à zéro ou plusieurs lettres majuscules
4. l'accent circonflexe ^ est une ancre. Il indique que l'expression qui le suit se trouve
en début de ligne.
Exemple : l'expression ^Depuis indique que l'on recherche les lignes commençant par
le mot Depuis.
NTIC 2024-2025
150 UTILISER LES EXPRESSIONS RÉGULIÈRE
5. le symbole dollar $ est aussi une ancre. Il indique que l'expression qui le précède se
trouve en fin de ligne.
Exemple : L'expression suivante :$ indique que l'on recherche les lignes se terminant par
« suivante : ».
NTIC 2024-2025
151 UTILISER LES EXPRESSIONS RÉGULIÈRE
Expressions régulières étendues
Elles ajoutent cinq symboles qui ont les significations suivantes :
1. la paire de parenthèses ( ): est utilisée à la fois pour former des sous-motifs et pour
délimiter des sous-expressions, ce qui permettra d'extraire des parties d'une chaîne de
caractères.
Exemple : L'expression (to)* désignera to, tototo, etc.
2. le signe plus +: est un quantificateur comme *, mais il signifie une ou plusieurs
occurrences du caractère ou de l'élément qui le précède immédiatement.
Exemple : L'expression ab+ signifie la lettre a suivie d'une ou plus
3. le point d'interrogation ?: il signifie zéro ou une instance de l'expression qui le précède.
Exemple : écran(s)? désigne écran ou écrans ;
NTIC 2024-2025
152 UTILISER LES EXPRESSIONS RÉGULIÈRE
4. la paire d'accolades { } : précise le nombre d'occurrences permises pour le
motif qui le précède.
Exemple : [0-9]{2,5} attend entre deux et cinq nombres décimaux. • Les variantes
suivantes sont disponibles : [0- 9]{2,} signifie au minimum deux occurrences
d'entiers décimaux et [0-9]{2} deux occurrences exactement
NTIC 2024-2025
153 UTILISER LES EXPRESSIONS RÉGULIÈRE
NTIC 2024-2025
155 UTILISER LES EXPRESSIONS RÉGULIÈRE
NTIC 2024-2025
157 UTILISER LES EXPRESSIONS RÉGULIÈRE
Exemple
Import re
email=input("Donner votre email:")
regex = '^[a-zA-Z][a-zA-Z0-9_.-]+@[a-zA-Z] [a-zA-Z0-9_.-]+\.[a-zA-Z]+$‘
If [Link](regex,email):
print("Valid Email")
else:
print("Invalid Email")
NTIC 2024-2025
158 UTILISER LES EXPRESSIONS RÉGULIÈRE
La fonction findall() renvoie une liste contenant toutes les
correspondances. La liste contient les correspondances dans l’ordre où
elles sont trouvées. Si aucune correspondance n’est trouvée, une liste vide
est renvoyée.
Exemple :
NTIC 2024-2025
159 UTILISER LES EXPRESSIONS RÉGULIÈRE
• La fonction search() recherche une correspondance dans la chaîne et renvoie un
objet Match s’il existe une correspondance. S’il y a plus d’une correspondance,
seule la première occurrence de la correspondance sera renvoyée:
Exemple : Extraction simple
La variable expression recoit la forme compilee de l'expression reguliere, Puis on
applique a ce motif compile la methode search() qui retourne la premiere position
du motif dans la chaine Nameage et l'affecte a la variable ages.
Enfin on affiche la correspondance complete
(en ne donnant pas d'argument a group())
NTIC 2024-2025
160 UTILISER LES EXPRESSIONS RÉGULIÈRE
NTIC 2024-2025
161 UTILISER LES EXPRESSIONS RÉGULIÈRE
• Python possède une syntaxe qui permet de nommer des parties de motif
délimitées par des parenthèses, ce qu'on appelle un motif nominatif :
Exemple : maxsplit=1
NTIC 2024-2025
163 UTILISER LES EXPRESSIONS RÉGULIÈRE
NTIC 2024-2025
164
NTIC 2024-2025
165 ADMINISTRER LES EXCEPTIONS
Erreurs de syntaxe
Exemple :
• L'analyseur indique la ligne incriminée et affiche une petite « flèche » pointant vers le premier
endroit de la ligne où l'erreur a été détectée.
• Dans cet exemple, la flèche est sur la fonction print() car il manque deux points (':') juste avant. Le
nom du fichier et le numéro de ligne sont affichés pour vous permettre de localiser facilement
l'erreur lorsque le code provient d'un script
NTIC 2024-2025
166 ADMINISTRER LES EXCEPTIONS
Exceptions
• Même si une instruction ou une expression est syntaxiquement correcte, elle peut générer une erreur lors
de son exécution.
• Les erreurs détectées durant l'exécution sont appelées des exceptions et ne sont pas toujours fatales
• La plupart des exceptions toutefois ne sont pas prises en charge par les programmes, ce qui génère des
messages d'erreurs comme celui-ci :
La dernière ligne du message d'erreur indique ce qui s'est passé. Les exceptions peuvent être de différents
types et ce type est indiqué dans le message : le types indiqué dans l'exemple est ZeroDivisionError
NTIC 2024-2025
167 ADMINISTRER LES EXCEPTIONS
• En Python, les erreurs détectées durant l’exécution d’un script sont appelées des
exceptions car elles correspondent à un état “exceptionnel” du script
NTIC 2024-2025
168 ADMINISTRER LES EXCEPTIONS
NTIC 2024-2025
169 ADMINISTRER LES EXCEPTIONS
NTIC 2024-2025
170 ADMINISTRER LES EXCEPTIONS
NTIC 2024-2025
171 ADMINISTRER LES EXCEPTIONS
Exemple :
NTIC 2024-2025
172 ADMINISTRER LES EXCEPTIONS
Instruction try-except
NTIC 2024-2025
173 ADMINISTRER LES EXCEPTIONS
Type Exception
• Lorsqu'on utilise l'instruction try-except, le bloc except capture toutes les erreurs possibles
qui peuvent survenir dans le bloc try correspondant.
• Une exception est en fait représentée par un objet, instance de la classe Exception.
la variable e.
• Chaque type d'erreur est donc défini par une classe spécifique.
• Il est possible d’associer plusieurs blocs except à un même bloc try,pour exécuter un code
différent en fonction de l'erreur capturée.
• Lorsqu'une erreur se produit, les blocs except sont parcourus l'un après l'autre, du premier
au dernier, jusqu'à en trouver un qui
NTIC 2024-2025
175 ADMINISTRER LES EXCEPTIONS
Bloc finally
• Le mot réservé finally permet d'introduire un bloc qui sera exécuté soit après que
le bloc try se soit exécuté complètement sans erreur, soit après avoir exécuté le
bloc except correspondant à l'erreur qui s'est produite lors de l'exécution du bloc
try.
NTIC 2024-2025
176 ADMINISTRER LES EXCEPTIONS
Génération d'erreur
• Il est possible de générer une erreur dans un programme grâce à l'instruction raise.
• Il suffit en fait simplement d'utiliser le mot réservé raise suivi d'une référence vers un
objet représentant une exception.
Exemple
NTIC 2024-2025
177 ADMINISTRER LES EXCEPTIONS
NTIC 2024-2025
178 ADMINISTRER LES EXCEPTIONS
• Cette classe est tout simplement vide puisque son corps n'est constitué que de
l'instruction pass
NTIC 2024-2025
179 ADMINISTRER LES EXCEPTIONS
Exemple :
• Définissons une fonction trinomial qui calcule et renvoie les racines d'un trinôme du second
degré de la forme ax2+bx+c et qui génère une erreur lorsqu'il n'y a pas de racine réelle :
NTIC 2024-2025
180 ADMINISTRER LES EXCEPTIONS
Exception paramétrée
• Lorsqu'on appelle la fonction trinomial, on va donc pouvoir utiliser l'instruction try-except pour attraper cette erreur,
lorsqu'elle survient
x+2. Pour cela, on appelle donc la fonction trinomial en lui passant en paramètres 1, 0 et 2 puisque x+2 correspond à
a=1, b=0 et c=2
NTIC 2024-2025
181 ADMINISTRER LES EXCEPTIONS
NTIC 2024-2025
182 Exemple:
raise
Try: Try :
Except: Except:
NTIC 2024-2025
183 Exemple:
Def fonction():
If a<0 :
raise ArithmeticError() ou MyException
….
a=int(input("donner un nombre :")) Try :
b=int(input("donner un nombre :")) fonction()
Try:
print("le resultat est ",a/b) Except:
print("erreur")
Except:
print (" erreur ")
NTIC 2024-2025
184
NTIC 2024-2025
185
MANIPULER LES MODULES ET LES BIBLIOTHEQUES
1- Manipuler les modules
Création de modules
NTIC 2024-2025
186
MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Remarque:
Les modules :
• Permettent la séparation du code et donc une meilleure organisation du code
• Maximisent la réutilisation
• Facilitent le partage du code
NTIC 2024-2025
187
MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
188
MANIPULER LES MODULES ET LES BIBLIOTHEQUES
2. Si le module est introuvable, Python recherche ensuite chaque répertoire listé dans la variable shell
PYTHONPATH ;
3. Si tout échoue, Python vérifie le chemin par défaut (exemple pour windows \Python\Python39\Lib)
NTIC 2024-2025
189
MANIPULER LES MODULES ET LES BIBLIOTHEQUES
• Il en existe un très grand nombre, et c’est d’ailleurs une des grandes forces de
Python.
• La plupart est regroupée dans PyPI (Python Package Index) le dépôt tiers officiel
du langage de programmation Python.
NTIC 2024-2025
190
MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
191
MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Pip (Python Installer Package)
• Pip est un moyen d'installer et de gérer des packages et des dépendances supplémentaires qui
ne sont pas encore distribués dans le cadre de la version standard du package
• Pip package est intégré dans l’installation du Python depuis les versions 3.4 pour Python3 et les
versions 2.7.9 pour Python2, et utilisé dans nombreux projets du Python.
• En exécutant la commande ci-dessus, il est possible de vérifier que pip est disponible ou non
ou
NTIC 2024-2025
192 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
193 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
194 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Bibliothèques graphiques
NTIC 2024-2025
195 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Bibliothèques graphiques
• PyQt est un module libre qui permet de créer des interfaces graphiques
en Python.
NTIC 2024-2025
196 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Bibliothèques graphiques
NTIC 2024-2025
197 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Tkinter
bibliothèque graphique TK, qui fournit des widgets et des outils pour créer
des fenêtres, des boutons, des zones de texte, des listes déroulantes, des
images, etc.
NTIC 2024-2025
198 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Tout ce que vous devez faire est d’effectuer les étapes suivantes :
• Importez le module Tkinter.
• Créez la fenêtre principale de l’application GUI (Graphical User Interface) .
• Ajoutez un ou plusieurs des widgets à l’application GUI((Graphical User
Interface) .
• Faite une boucle d’événement pour prendre des mesures contre chaque
événement déclenché par l’utilisateur.
NTIC 2024-2025
199 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Widgets Tkinter
Tkinter fournit divers contrôles, tels que des boutons, des étiquettes et des
zones de texte utilisées dans une application graphique. Ces contrôles
sont communément appelés widgets.
NTIC 2024-2025
200 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
201 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
202 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
203 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Gestionnaires de positionnement
Tous les widgets Tkinter ont accès à des méthodes de gestion de géométrie spécifiques,
qui ont pour but d’organiser les widgets dans la zone de widget parent. Tkinter expose les
classes de gestionnaire de positionnement suivantes: pack, grid et place.
permet de positionner les widgets Cette méthode permet de positionner permet de positionner les widgets
les uns à côté des autres, soit les widgets dans une grille de cellules avec des coordonnées absolues
horizontalement, soit rectangulaires. dans la fenêtre.
verticalement.
t = [Link](app, text="saisir :") l = [Link] (text = "première ligne") l = [Link](text="première ligne")
[Link]() [Link] (column = 0, row = 0)
z = [Link]( app) s = [Link] () [Link] (x=10, y=50)
[Link](side=[Link]) [Link] (column = 0, row = 1)
e = [Link] (text = "seconde ligne")
[Link] (column = 1, row = 0)
NTIC 2024-2025
205 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Boite de message
Tkinter fournit des fonctions simples pour afficher des boites de message à
l’utilisateur. Ces fonctions prennent comme premier paramètre le titre de la
fenêtre de dialogue et comme second paramètre le message à afficher.
• Message d’information
NTIC 2024-2025
206 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
207
NTIC 2024-2025
208 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Notez que l’on passe l’objet app comme premier paramètre de construction
pour indiquer qu’il appartient à la fenêtre principale
NTIC 2024-2025
209 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
210 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
211 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
212 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
213 Concaténation de deux chaines de
caractères
Concaténation de deux chaines de
caractères dans la une Label
NTIC 2024-2025
214 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
215 Exercice
NTIC 2024-2025
216 Exercice
NTIC 2024-2025
217 Exercice
NTIC 2024-2025
218 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
le copier-coller, et l'annulation.
NTIC 2024-2025
219 Exercice
NTIC 2024-2025
220 Exercice
1- Le bouton ‘Effacer' efface les 2 zones.
2- Cliquer sur "Se connecter" provoque, si le login est "User"
et le mot de passe "123" , l’ouverture d’une nouvelle fenêtre
d’arriere plan noir et avec un Label contenant le login, et
une zone multiligne contenant les informations entrées.
Le message a affiché :
" votre login est : ……
votre mot de passe est : ….. "
Si login ou mot de passe est incorrecte un message dans la 1ere fenêtre
s’affiche: " Bonjour LOGIN votre login ou mot de passe est incorrecte.
3- la 1ere fenêtre sera fermé. (avec la methode destroy())
NTIC 2024-2025
221 Exercice
NTIC 2024-2025
222 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
223 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
6- Création d’ un composant graphique de type Bouton radio
NTIC 2024-2025
224 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
225 Exercice
Dans un premier temps, la boite se présente de la façon suivante
Une fois la première case sélectionnée, la boite doit prendre cet aspect:
NTIC 2024-2025
226 Exercice
Après avoir entré un nombre dans les zones de texte libellées 'Nombre1' et 'Nombre2' et sélectionné une des options du cadre
'Opérations', on peut :
bouton utilisable.
NTIC 2024-2025
228 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
229 Exercice
NTIC 2024-2025
230 Exercice
NTIC 2024-2025
231
NTIC 2024-2025
232 Exercice
Mettre en œuvre les différents types de listes à notre
Listbox.
ou combobox.
NTIC 2024-2025
233 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
234 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
235 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Tkinter - Associer un événement à un objet
• Une fonction peut être exécutée lorsqu’on déplace la souris, on tape sur une
touche du clavier ou à n’importe quel événement capté par l’interface
graphique.
NTIC 2024-2025
236 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
• La méthode bind lance l’exécution d’une fonction lors de l’interception d’un évènement par
un objet.
• La fonction exécutée possède comme paramètre un seul objet de type Event. Sa syntaxe est
comme suit :
[Link](evt, fonction)
• widget représente l’ID de l’objet qui va intercepter l’évènement evt. Le Tableau suivant décrit
les valeurs que peut prendre evt.
• fonction représente la fonction qui va être appelée lors de l’arrivé de l’évènement. Elle
possède un seul paramètre de type Event.
NTIC 2024-2025
237 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
238 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
NTIC 2024-2025
239 MANIPULER LES MODULES ET LES BIBLIOTHEQUES
Exercices
NTIC 2024-2025