Exercice Corrigé: Les classes POO Python – Partie 5
Cet exercice de programmation orientée objet (POO) a pour but de vous aider à apprendre et à pratiquer les concepts de la POO. Toutes les questions sont testées sur Python 3.
Python La programmation orientée objet (POO) est basée sur le concept d’« objets », qui peuvent contenir des données et du code : des données sous la forme de variables d’instance (souvent connues sous le nom d’attributs ou de propriétés), et du code, sous la forme de méthodes. En d’autres termes, la POO permet d’encapsuler des propriétés et des comportements connexes dans des objets individuels.
Exercice 1:
Écrivez un programme Python pour créer une classe appelée « FeuDeCirculation » avec des attributs pour la couleur et la durée, et des méthodes pour changer la couleur et vérifier si le feu est rouge ou vert.
Diagrame de classe:

# Définir la classe FeuDeCirculation
class FeuDeCirculation:
# Constructeur pour la classe FeuDeCirculation
def __init__(self, couleur, duree):
# Initialiser la couleur du feu de circulation
self.couleur = couleur
# Initialiser la durée du feu de circulation
self.duree = duree
# Méthode pour changer la couleur du feu de circulation
def changer_couleur(self, new_color):
# Mettre à jour la variable couleur avec la nouvelle couleur
self.couleur = new_color
# Méthode pour vérifier si le feu est rouge
def est_rouge(self):
# Retourne True si la couleur est rouge, sinon retourne False
return self.couleur == "Rouge"
# Méthode pour vérifier si le feu est vert
def est_vert(self):
# Retourne True si la couleur est verte, sinon retourne False
return self.couleur == "Vert"
# Méthode pour obtenir la durée du feu de circulation
def get_duree(self):
# Renvoyer la valeur de la durée
return self.duree
# Méthode pour définir la durée du feu de circulation
def set_duree(self, duree):
# Mettre à jour la variable durée avec la nouvelle valeur
self.duree = duree
# Code pour tester la classe FeuDeCirculation
if __name__ == "__main__":
# Créer un nouvel objet FeuDeCirculation avec une couleur
# initiale 'Rouge' et une durée de 30 secondes.
fc = FeuDeCirculation("Rouge", 30)
# Afficher si le feu est rouge
print("Le feu est rouge:", fc.est_rouge())
# Afficher si le feu est vert
print("Le feu est vert:", fc.est_vert())
# Changer la couleur du feu de circulation en 'Vert'
fc.changer_couleur("Vert")
# Afficher si le feu de circulation est maintenant vert
print("Le feu de circulation est maintenant vert:", fc.est_vert())
# Afficher la durée du feu de circulation
print("La durée du feu est:", fc.get_duree())
# Définir une nouvelle durée pour le feu de circulation à 15
# secondes
fc.set_duree(15)
# Afficher la durée actualisée du feu de circulation
print("La durée du feu est maintenant:", fc.get_duree())
Sortie:
Le feu est rouge: true Le feu est vert: false Le feu de circulation est maintenant vert: true La durée du feu est: 30 La durée du feu est maintenant: 15
Exercice 2:
Écrire un programme Python pour créer une classe appelée « Employee » avec un nom, un salaire, une date d’embauche et une méthode pour calculer les années de service.
Diagrame de classe:

# Importer les modules nécessaires
from datetime import datetime, timedelta
# Définir la classe Employee
class Employee:
# Constructeur pour la classe Employee
def __init__(self, nom, salaire, dat_embauche):
# Initialiser le nom de l'employé
self.nom = nom
# Initialiser le salaire de l'employé
self.salaire = salaire
# Initialiser la date d'embauche de l'employé
self.dat_embauche = dat_embauche
# Méthode pour récupérer le nom de l'employé
def get_nom(self):
# Renvoyer le nom de l'employé
return self.nom
# Méthode pour définir le nom de l'employé
def set_nom(self, nom):
# Mettre à jour la variable nom avec la nouvelle valeur
self.nom = nom
# Méthode pour récupérer le salaire de l'employé
def get_salaire(self):
# Renvoyer le salaire de l'employé
return self.salaire
# Méthode pour définir le salaire de l'employé
def set_salaire(self, salaire):
# Mettre à jour la variable salaire avec la nouvelle valeur
self.salaire = salaire
# Méthode pour récupérer la date d'embauche de l'employé
def get_dat_embauche(self):
# Renvoyer la date d'embauche de l'employé
return self.dat_embauche
# Méthode pour définir la date d'embauche de l'employé
def set_dat_embauche(self, dat_embauche):
# Mettre à jour la variable dat_embauche avec la nouvelle
# valeur
self.dat_embauche = dat_embauche
# Méthode de calcul des années de service de l'employé
def calculer_annee_service(self):
# Calculer la période entre la date d'embauche et la date du
# jour, et renvoyer le nombre d'années
today = datetime.now().date()
return (today - self.dat_embauche).days // 365
# Méthode pour afficher les détails de l'employé
def afficher_employee(self):
# Afficher le nom de l'employé
print("\nNom:", self.nom)
# Afficher le salaire de l'employé
print("Salaire:", self.salaire)
# Afficher la date d'embauche de l'employé
print("Date d'embauche:", self.dat_embauche)
# Code pour tester la classe Employee
if __name__ == "__main__":
# Créer un nouvel objet Employee nommé emp1
emp1 = Employee("Alex Babtise", 80000, datetime.strptime("2024-05-01", "%Y-%m-%d").date())
# Créer un nouvel objet Employee nommé emp2
emp2 = Employee("Bob Kimo", 40000, datetime.strptime("2022-03-01", "%Y-%m-%d").date())
# Afficher les détails de l'employé 1
emp1.afficher_employee()
# Afficher les années de service de l'employé 1
print("Années de service:", emp1.calculer_annee_service())
# Afficher les détails de l'employé 2
emp2.afficher_employee()
# Afficher les années de service de l'employé 2
print("Années de service:", emp2.calculer_annee_service())
Sortie:
Nom: Alex Babtise Salaire: 80000.0 Date d'embauche: 2024-05-01 Années de service: 0 Nom: Bob Kimo Salaire: 40000.0 Date d'embauche: 2022-03-01 Années de service: 2
Exercice 3:
Écrire un programme Python pour créer une classe appelée « Etudiant » avec un nom, une note et des cours, ainsi que des méthodes pour ajouter et supprimer des cours.
Diagrame de classe:

# Définir la classe Etudiant
class Etudiant:
# Constructeur pour la classe Etudiant
def __init__(self, nom, note):
# Initialiser le nom de l'étudiant
self.nom = nom
# Initialiser la note de l'étudiant
self.note = note
# Initialiser la liste de cours
self.cours = []
# Méthode pour récupérer le nom de l'étudiant
def get_nom(self):
# Retourner le nom de l'étudiant
return self.nom
# Méthode pour récupérer la note de l'étudiant
def get_note(self):
# Retourner la note de l'étudiant
return self.note
# Méthode pour récupérer la liste de cours de l'étudiant
def get_cours(self):
# Retourner la liste de cours
return self.cours
# Méthode pour ajouter un cours à la liste des cours de
# l'étudiant
def ajouter_cours(self, c):
# Ajouter le cours donné à la liste des cours
self.cours.append(c)
# Méthode pour supprimer un cours de la liste des cours de
# l'étudiant
def supprimer_cours(self, c):
# Supprimer le cours donné de la liste des cours
self.cours.remove(c)
# Méthode pour afficher les détails de l'étudiant
def afficher_etudiant(self):
# Afficher le nom de l'étudiant
print("Nom:", self.nom)
# Afficher la note de l'étudiant
print("Note:", self.note)
# Code pour tester la classe Etudiant
if __name__ == "__main__":
# Créer un nouvel objet Etudiant nommé e1
e1 = Etudiant("Alex Babtise", 18)
# Créer un nouvel objet Etudiant nommé e2
e2 = Etudiant("Bob Kimo", 16)
# Afficher un en-tête pour les détails de l'étudiant
print("Détails de l'étudiant:")
# Afficher les données de l'étudiant 1
e1.afficher_etudiant()
# Afficher les données de l'étudiant 2
e2.afficher_etudiant()
# Ajouter des cours pour l'étudiant 1
print("Ajouter des cours pour", e1.get_nom())
e1.ajouter_cours("Mathématiques")
e1.ajouter_cours("Biologie")
e1.ajouter_cours("Histoire")
# Afficher le nom de e1 et sa liste de cours
print("Les cours de", e1.get_nom(), ":", e1.get_cours())
# Ajouter des cours pour l'étudiant 2
print("\nAjouter des cours pour", e2.get_nom())
e2.ajouter_cours("Anglais")
e2.ajouter_cours("Géologie")
e2.ajouter_cours("Physique")
# Afficher le nom de e2 et sa liste de cours
print("Les cours de", e2.get_nom(), ":", e2.get_cours())
# Suppression du cours 'Biologie' pour e1
print("\nSuppression du cours 'Biologie' pour", e1.get_nom())
# Supprimer le cours 'Biologie' des cours de e1
e1.supprimer_cours("Biologie")
# Afficher le nom de e1 et sa liste de cours mise à jour
print("Les cours de", e1.get_nom(), ":", e1.get_cours())
Sortie:
Détails de l'étudiant: Nom: Alex Babtise Note: 18 Nom: Bob Kimo Note: 16 Ajouter des cours pour Alex Babtise Les cours de Alex Babtise : [Mathématiques, Biologie, Histoire] Ajouter des cours pour Bob Kimo Les cours de Bob Kimo : [Anglais, Géologie, Physique] Suppression du cours 'Biologie' pour Alex Babtise Les cours de Alex Babtise : [Mathématiques, Histoire]
Exercice 4:
Écrire un programme Python pour créer une classe appelée « Bibliotheque » avec une collection de livres et des méthodes pour ajouter et supprimer des livres.
Diagrame de classe:

# Définir la classe Livre
class Livre:
# Constructeur pour initialiser les champs titre et auteur
def __init__(self, titre, auteur):
# Attribuer le paramètre titre au champ titre
self.titre = titre
# Attribuer le paramètre auteur au champ auteur
self.auteur = auteur
# Méthode pour récupérer le titre
def get_titre(self):
# Retourner la valeur du champ titre
return self.titre
# Méthode Setter pour le titre
def set_titre(self, titre):
# Attribuer le paramètre titre au champ titre
self.titre = titre
# Méthode pour récupérer l'auteur
def get_auteur(self):
# Retourner la valeur du champ auteur
return self.auteur
# Méthode Setter pour l'auteur
def set_auteur(self, auteur):
# Attribuer le paramètre auteur au champ auteur
self.auteur = auteur
# Définir la classe Bibliotheque
class Bibliotheque:
# Constructeur pour initialiser la variable livres
def __init__(self):
# Créer une nouvelle liste pour contenir les objets Livre
self.livres = []
# Méthode pour ajouter un livre à la liste des livres
def add_livre(self, livre):
# Ajouter le livre spécifié à la liste des livres
self.livres.append(livre)
# Méthode pour supprimer un livre de la liste des livres
def remove_livre(self, livre):
# Supprimer le livre spécifié de la liste des livres
self.livres.remove(livre)
# Méthode pour récupérer la liste des livres
def get_livres(self):
# Retourner la liste des livres
return self.livres
# Code pour tester la classe Bibliotheque et Livre
if __name__ == "__main__":
# Créer une nouvelle instance de la classe Bibliotheque
biblio = Bibliotheque()
# Créer de nouveaux objets Livre avec le titre et l'auteur
livre1 = Livre("Les Misérables", "Victor Hugo")
livre2 = Livre("Nana", "Émile Zola")
livre3 = Livre("Les fleurs du mal", "Baudelaire")
livre4 = Livre("Le Cid", "Corneille")
# Ajouter les livres à la biblio
biblio.add_livre(livre1)
biblio.add_livre(livre2)
biblio.add_livre(livre3)
biblio.add_livre(livre4)
print("Livres dans la bibliothèque:")
# Parcourir la liste des livres de la biblio
for livre in biblio.get_livres():
# Afficher le titre et l'auteur de chaque livre
print(f"{livre.get_titre()} par {livre.get_auteur()}")
# Supprimer un livre de la biblio
biblio.remove_livre(livre2)
print(f"\nLivres dans la biblio après suppression de {livre2.get_titre()} :")
# Parcourir la liste mise à jour des livres dans la biblio
for livre in biblio.get_livres():
# Afficher le titre et l'auteur de chaque livre
print(f"{livre.get_titre()} par {livre.get_auteur()}")
Sortie:
Livres dans la bibliothéque: Les Misérables par Victor Hugo Nana par Émile Zola Les fleurs du mal par Baudelaire Le Cid par Corneille Livres dans la biblio après suppression Nana: Les Misérables par Victor Hugo Les fleurs du mal par Baudelaire Le Cid par Corneille
Exercice 5:
Écrire un programme Python pour créer une classe appelée « Avion » avec un numéro de vol, une destination et des attributs d’heure de départ, ainsi que des méthodes pour vérifier l’état et le retard du vol.
Diagrame de classe:

# Importer les classes datetime et timedelta
from datetime import datetime, timedelta
# Définir la classe Avion
class Avion:
# Constructeur pour initialiser le numéro de vol, la destination
# et l'heure de départ prévue
def __init__(self, num_vol, destination, heure_depart):
# Attribut pour stocker le numéro de vol
self.num_vol = num_vol
# Attribut pour stocker la destination
self.destination = destination
# Convertir l'heure de départ en datetime en combinant la
# date d'aujourd'hui et l'heure donnée
self.heure_depart = datetime.combine(datetime.today(), heure_depart)
# Initialiser le temps de retard à 0 minutes
self.temps_retard = 0
def get_num_vol(self):
# Retourner le numéro de vol
return self.num_vol
def set_num_vol(self, num_vol):
# Mettre à jour le numéro de vol
self.num_vol = num_vol
def get_destination(self):
# Retourner la destination
return self.destination
def set_destination(self, destination):
# Mettre à jour la destination
self.destination = destination
def get_heure_depart(self):
# Retourner l'heure de départ sous forme d'objet time
return self.heure_depart.time()
def set_heure_depart(self, heure_depart):
# Mettre à jour l'heure de départ en combinant la date
# actuelle avec la nouvelle heure
self.heure_depart = datetime.combine(self.heure_depart.date(), heure_depart)
def get_temps_retard(self):
# Retourner le temps de retard
return self.temps_retard
def retarder(self, minutes):
# Mettre à jour le temps de retard
self.temps_retard = minutes
# Ajouter le temps de retard à l'heure de départ
self.heure_depart += timedelta(minutes=minutes)
def check_statut_vol(self):
# Vérifier le statut du vol
if self.temps_retard == 0:
# Si pas de retard, afficher que le vol est à l'heure
print(f"Le vol {self.num_vol} est à l'heure.")
else:
# Si en retard, afficher le temps de retard
print(f"Le vol {self.num_vol} est retardé de {self.temps_retard} minutes.")
# Code pour tester la classe Avion
if __name__ == "__main__":
# Créer des instances de la classe Avion avec numéro de vol,
# destination et heure de départ
a1 = Avion("ABC123", "Paris", datetime.strptime("11:30", "%H:%M").time())
a2 = Avion("POM569", "CasaBlanca", datetime.strptime("15:00", "%H:%M").time())
a3 = Avion("UYT852", "Bruxelles", datetime.strptime("12:00", "%H:%M").time())
# Afficher le statut initial des vols
print("Statut du vol:")
a1.check_statut_vol() # Vérifier et afficher l'état du vol a1
a2.check_statut_vol() # Vérifier et afficher l'état du vol a2
a3.check_statut_vol() # Vérifier et afficher l'état du vol a3
# Retarder les vols
a1.retarder(30) # Retarder a1 de 30 minutes
a2.retarder(90) # Retarder a2 de 90 minutes
# Afficher le statut actuel des vols après les retards
print("\nStatut actuel du vol:")
a1.check_statut_vol() # Vérifier et afficher l'état de a1
a2.check_statut_vol() # Vérifier et afficher l'état de a2
a3.check_statut_vol() # Vérifier et afficher l'état de a3
Sortie:
Statut du vol: Le vol ABC123 est à l'heure. Le vol POM569 est à l'heure. Le vol UYT852 est à l'heure. Statut actuel du vol: Le vol ABC123 est retardé de 30 minutes. Le vol POM569 est retardé de 90 minutes. Le vol UYT852 est à l'heure.
Éditeur de code Python: Testez votre code en ligne!
Exercice Corrigé: Les classes POO Python – Partie 2
Exercice Corrigé: Les classes POO Python – Partie 3
Exercice Corrigé: Les classes POO Python – Partie 4
Exercice Corrigé: Les classes POO Python – Partie 5
Exercice Corrigé: Les classes POO Python – Partie 6
Exercice Corrigé: Les classes POO Python – Partie 7
Exercice Corrigé: Les classes POO Python – Partie 8
Exercice Corrigé: Les classes POO Python – Partie 9
QCM Python – Partie 1Bienvenue dans notre QCM Python ! Que vous soyez débutant ou déjà expérimenté en programmation, ce questionnaire à choix multiples est l’occasion parfaite de tester…Lire plus
- Exercice Corrigé Python pour Débutant – Partie 1
- Exercice Corrigé Python pour Débutant – Partie 2
- Exercice Corrigé Python pour Débutant – Partie 3
- Exercice Corrigé Python pour Débutant – Partie 4
- Exercice Corrigé: Boucle While en Python
- Exercice Corrigé: Boucle For en Python
- Exercice Corrigé: Les chaînes de caractères en Python – Partie 1
- Exercice Corrigé: Les chaînes de caractères en Python – Partie 2
- Exercice Corrigé: Les chaînes de caractères en Python – Partie 3
- Exercice Corrigé: Les chaînes de caractères en Python – Partie 4
- Exercice Corrigé: Les chaînes de caractères en Python – Partie 5
- Exercice Corrigé: Les chaînes de caractères en Python – Partie 6
- Exercice Corrigé: Booléens en Python
- Exercice Corrigé: Les fonctions en Python
- Exercice Corrigé: Math en Python
- Exercice Corrigé: Gestion des exceptions en Python
- Exercice Corrigé: Les fichiers en Python – Partie 1
- Exercice Corrigé: Les fichiers en Python – Partie 2
- Exercice Corrigé: Les listes en Python – Partie 1
- Exercice Corrigé: Les listes en Python – Partie 2
- Exercice Corrigé: Les listes en Python – Partie 3
- Exercice Corrigé: Les listes en Python – Partie 4
- Exercice Corrigé: Les listes en Python – Partie 5
- Exercice Corrigé: Les listes en Python – Partie 6
- Exercice Corrigé: Les listes en Python – Partie 7
- Exercice Corrigé: Les listes en Python – Partie 8
- Exercice Corrigé: Les listes en Python – Partie 9
- Exercice Corrigé: Les listes en Python – Partie 10
- Exercice Corrigé: Les listes en Python – Partie 11
- Exercice Corrigé: Les listes en Python – Partie 12
- Exercice Corrigé: Les tuples en Python
- Exercice Corrigé: Les ensembles(Set) en Python
- Exercice Corrigé: Les dictionnaires en Python – Partie 1
- Exercice Corrigé: Les dictionnaires en Python – Partie 2
- Exercice Corrigé: Les dictionnaires en Python – Partie 3
- Exercice Corrigé: Les dictionnaires en Python – Partie 4
- Exercice Corrigé: Les expressions régulières en Python – Partie 1
- Exercice Corrigé: Les expressions régulières en Python – Partie 2
- Exercice Corrigé: Les expressions régulières en Python – Partie 3
- Exercice Corrigé: Les expressions régulières en Python – Partie 4
- Exercice Corrigé: Les classes POO Python – Partie 1
- Exercice Corrigé: Les classes POO Python – Partie 2
- Exercice Corrigé: Les classes POO Python – Partie 3
- Exercice Corrigé: Les classes POO Python – Partie 4
- Exercice Corrigé: Les classes POO Python – Partie 5
- Exercice Corrigé: Les classes POO Python – Partie 6
- Exercice Corrigé: Les classes POO Python – Partie 7
- Exercice Corrigé: Les classes POO Python – Partie 8
- Exercice Corrigé: Les classes POO Python – Partie 9
- Exercice Corrigé: NumPy – Partie 1
- Exercice Corrigé: NumPy – Partie 2
- Exercice Corrigé: NumPy – Partie 3
- Exercice Corrigé: NumPy – Partie 4
- Exercice Corrigé: NumPy – Partie 5
- Exercice Corrigé: NumPy – Partie 6
- Exercice Corrigé: NumPy – Partie 7
- Exercice Corrigé: NumPy – Partie 8
- Exercice Corrigé: Python Avancé – Partie 1
- Exercice Corrigé: Python Avancé – Partie 2
- Exercice Corrigé: Python Avancé – Partie 3
- Exercice Corrigé: Python Avancé – Partie 4
- Exercice Python Corrigé En Ligne – Partie 1
- Exercice Python Corrigé En Ligne – Partie 2
- Exercice Python Corrigé En Ligne – Partie 3



