Exercice Corrigé: Les classes POO Python – Partie 4
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 « Personne » avec un nom et un attribut age. Créez deux instances de la classe « Personne », définissez leurs attributs à l’aide du constructeur et affichez leur nom et leur âge.
Exemple de sortie:
Alex Babtise a 25 ans. Emily Tonari a 18 ans.
Diagrame de classe:

# Définir la classe Personne class Person: # Constructeur de la classe Personne qui initialise # les variables name et age def __init__(self, name, age): # Attribuer à la variable name la valeur du paramètre name self.__name = name # Attribuer à la variable age la valeur du paramètre age self.__age = age # Méthode pour récupérer le nom de la personne def get_name(self): # Retourner la valeur de la variable name return self.__name # Méthode pour récupérer l'age de la personne def get_age(self): # Retourner la valeur de la variable age return self.__age # Méthode pour définir le nom de la personne def set_name(self, name): # Attribue à la variable name la valeur du paramètre name self.__name = name # Méthode pour définir l'age de la personne def set_age(self, age): # Attribuer à la variable age la valeur du paramètre age self.__age = age if __name__ == "__main__": # Créer une instance de la classe Personne p1 = Person("Alex Babtise", 25) # Créer une instance de la classe Personne p2 = Person("Emily Tonari", 18) # Afficher le nom et l'âge de p1 sur la console print(f"{p1.get_name()} a {p1.get_age()} ans.") # Afficher le nom et l'âge de p2 sur la console print(f"{p2.get_name()} a {p2.get_age()} ans.\n") # Modifier le nom et l'âge de p2 en utilisant les setter p2.set_name("Thomas Gozilla") p2.set_age(30) # Afficher le nom et l'âge actualisés de p2 sur la console print(f"{p2.get_name()} a {p2.get_age()} ans.\n")
Sortie:
Alex Babtise a 25 ans. Emily Tonari a 18 ans. Thomas Gozilla a 30 ans.
Explication:
Dans l’exemple ci-dessus, nous créons deux instances de la classe « Personne », nous définissons leurs attributs à l’aide du constructeur et nous affichons leur nom et leur âge à l’aide des méthodes getter. Nous modifions également les attributs à l’aide des méthodes setter et affichons les valeurs mises à jour.
Exercice 2:
Écrivez un programme Python pour créer une classe appelée « Chien » avec un nom et un attribut de race. Créez deux instances de la classe « Chien », définissez leurs attributs à l’aide du constructeur et modifiez les attributs à l’aide des méthodes setter, puis affichez les valeurs mises à jour.
Diagrame de classe:

# Définir la classe Chien class Chien: # Constructeur de la classe Chien qui initialise les variables def __init__(self, nom, race): self.__nom = nom self.__race = race # Méthode pour récupérer le nom du chien def get_nom(self): return self.__nom # Méthode pour définir le nom du chien def set_nom(self, nom): self.__nom = nom # Méthode pour récupérer la race du chien def get_race(self): return self.__race # Méthode pour définir la race du chien def set_race(self, race): self.__race = race # Code pour tester la classe Chien if __name__ == "__main__": # Créer une instance de la classe Chien avec le nom 'Rio' et la # race 'Berger allemand' ch1 = Chien("Rio", "Berger allemand") # Créer une autre instance de la classe Chien avec le nom 'Rocky' # et la race 'Husky' ch2 = Chien("Rocky", "Husky") # Afficher le nom et la race de ch1 sur la console print(f"{ch1.get_nom()} est un {ch1.get_race()}") # Afficher le nom et la race de ch2 sur la console print(f"{ch2.get_nom()} est un {ch2.get_race()}") # Afficher un message indiquant que la race de ch1 et le nom de # ch2 vont être modifiés print("\nDéfinir la nouvelle race de ch1 et le nouveau nom de ch2:") # Changer la race de ch1 en "Beagle" ch1.set_race("Beagle") # Changer le nom de ch2 en "Simba" ch2.set_nom("Simba") # Afficher le nom et la race mis à jour de ch1 print(f"{ch1.get_nom()} est un {ch1.get_race()}") # Afficher le nom et la race mis à jour de ch2 print(f"{ch2.get_nom()} est un {ch2.get_race()}")
Sortie:
Rio est un Berger allemand Rocky est un Husky Définir la nouvelle race de ch1 et le nouveau nom de ch2: Rio est un Beagle Simba est un Husky
Exercice 3:
Écrire un programme Python pour créer une classe appelée « Livre » avec des attributs pour le titre, l’auteur et l’ISBN, et des méthodes pour ajouter et supprimer des livres d’une collection.
Diagrame de classe:

# Définir la classe Livre class Livre: # Déclarez une liste pour stocker la liste d'objets de Livre livres = [] # Constructeur de la classe Livre qui initialise les variables # titre, auteur et ISBN def __init__(self, titre, auteur, ISBN): # Attribue à la variable 'titre' la valeur du paramètre # 'titre' fourni self.titre = titre # Attribue à la variable 'auteur' la valeur du paramètre # 'auteur' fourni self.auteur = auteur # Attribue à la variable 'ISBN' la valeur du paramètre 'ISBN' self.ISBN = ISBN # Méthode pour récupérer le titre du livre def get_titre(self): # Renvoyer la valeur de la variable titre return self.titre # Méthode pour définir le titre du livre def set_titre(self, titre): # Attribue à la variable 'titre' la valeur du paramètre # 'titre' fourni self.titre = titre # Méthode pour récupérer l'auteur du livre def get_auteur(self): # Renvoyer la valeur de la variable auteur return self.auteur # Méthode pour définir l'auteur du livre def set_auteur(self, auteur): # Attribue à la variable 'auteur' la valeur du paramètre # 'auteur' fourni self.auteur = auteur # Méthode pour récupérer l'ISBN du livre def get_ISBN(self): # Renvoyer la valeur de la variable ISBN return self.ISBN # Méthode pour définir l'ISBN du livre def set_ISBN(self, ISBN): # Attribue à la variable 'ISBN' la valeur du paramètre 'ISBN' self.ISBN = ISBN # Méthode statique pour ajouter un livre à la collection de # livres @staticmethod def add_livre(livre): # Ajouter l'objet livre fourni à la collection livres Livre.livres.append(livre) # Méthode statique pour supprimer un livre de la collection de # livres @staticmethod def remove_livre(livre): # Supprime l'objet livre fourni de la collection livres Livre.livres.remove(livre) # Méthode statique pour récupérer toute la collection de livres @staticmethod def get_livres(): # Retourner la liste de livres return Livre.livres # Code pour tester la classe Livre if __name__ == "__main__": # Créez une instance de la classe Livre avec titre "L'Étranger", # auteur "Albert Camus", et ISBN "6547165001881" livre1 = Livre("L'Étranger", "Albert Camus", "6547165001881") # Créez une autre instance de la classe Livre avec titre "Le père # Goriot", auteur "Honoré de Balzac", et ISBN "661100321741" livre2 = Livre("Le père Goriot", "Honoré de Balzac", "661100321741") # Ajouter livre1 à la collection de livres Livre.add_livre(livre1) # Ajouter livre2 à la collection de livres Livre.add_livre(livre2) # Récupérer la collection de livres et la stocker dans une liste # nommée livres. livres = Livre.get_livres() # Afficher un en-tête pour la liste des livres print("Liste des livres:") # Parcourir chaque livre de la collection livres for l in livres: # Affichez le titre, l'auteur et le numéro ISBN de chaque # livre. print(f"{l.get_titre()} par {l.get_auteur()}, ISBN: {l.get_ISBN()}") # Supprimer le livre 1 de la collection de livres Livre.remove_livre(livre1) # Afficher un message indiquant que le livre 1 a été supprimé print(f"\nAprès suppression de {livre1.get_titre()}:") # Afficher un en-tête pour la liste des livres mise à jour print("Liste des livres mise à jour:") # Parcourir chaque livre de la collection livres for l in livres: # Affichez le titre, l'auteur et le numéro ISBN de chaque # livre. print(f"{l.get_titre()} par {l.get_auteur()}, ISBN: {l.get_ISBN()}")
Sortie:
Liste des livres: L'Étranger par Albert Camus, ISBN: 6547165001881 Le père Goriot par Honoré de Balzac, ISBN: 661100321741 Après suppression de L'Étranger: Liste des livres mise à jour: Le père Goriot par Honoré de Balzac, ISBN: 661100321741
Exercice 4:
Écrire un programme Python pour créer une classe appelée « Employee » avec un nom, un poste et un salaire, ainsi que des méthodes pour calculer et mettre à jour le salaire.
Diagrame de classe:

# Définir la classe Employee class Employee: # Déclarer une variable pour stocker le nom de l'employé def __init__(self, nom, poste, salaire): # Attribue à la variable nom la valeur du paramètre nom self.nom = nom # Attribue à la variable poste la valeur du paramètre poste self.poste = poste # Attribue à la variable salaire la valeur du paramètre # salaire fourni self.salaire = salaire # Méthode pour récupérer le nom de l'employé def get_nom(self): # Retourner la valeur de la variable nom return self.nom # Méthode pour définir le nom de l'employé def set_nom(self, nom): # Attribue à la variable nom la valeur du paramètre nom self.nom = nom # Méthode pour récupérer le poste de l'employé def get_poste(self): # Retourner la valeur de la variable poste return self.poste # Méthode pour définir le poste de l'employé def set_poste(self, poste): # Attribue à la variable poste la valeur du paramètre poste self.poste = poste # Méthode pour récupérer le salaire de l'employé def get_salaire(self): # Retourner la valeur de la variable salaire return self.salaire # Méthode pour définir le salaire de l'employé def set_salaire(self, salaire): # Attribue à la variable salaire la valeur du paramètre # salaire fourni self.salaire = salaire # Méthode pour augmenter le salaire de l'employé d'un pourcentage # donné def aug_salaire(self, pourcentage): # Calculer le nouveau salaire en augmentant le salaire actuel # du pourcentage donné self.salaire += self.salaire * pourcentage / 100 # Méthode pour afficher les détails de l'employé def afficher_employee(self): # Afficher le nom de l'employé print("Nom:", self.nom) # Afficher le poste de l'employé print("Poste:", self.poste) # Afficher le salaire de l'employé print("Salaire:", self.salaire) # Code pour tester la classe Employee if __name__ == "__main__": # Créer une instance de la classe Employee e1 = Employee("Alex Babtise", "Développeur", 80000) # Créer une autre instance de la classe Employee e2 = Employee("Emily Firoza", "Comptable", 70000) print("\nDétails de l'employé:") # Afficher les détails de e1 e1.afficher_employee() # Afficher les détails de e2 e2.afficher_employee() # Augmenter le salaire de e1 de 5% e1.aug_salaire(5) # Augmenter le salaire de e2 de 10% e2.aug_salaire(10) print("\nAprès l'augmentation des salaires:") print("\n5% pour 'Alex Babtise':") # Afficher les données mises à jour de e1 e1.afficher_employee() print("\n10% pour 'Emily Firoza':") # Afficher les données mises à jour de e2 e2.afficher_employee()
Sortie:
Détails de l'employé: Nom: Alex Babtise Poste: Développeur Salaire: 80000.0 Nom: Emily Firoza Poste: Comptable Salaire: 70000.0 Après l'augmentation des salaires: 5% pour 'Alex Babtise': Nom: Alex Babtise Poste: Développeur Salaire: 84000.0 10% pour 'Emily Firoza': Nom: Emily Firoza Poste: Comptable Salaire: 77000.0
Exercice 5:
Écrivez un programme Python pour créer une classe appelée « Banque » avec une collection de comptes et des méthodes pour ajouter et supprimer des comptes, et pour déposer et retirer de l’argent. Définissez également une classe appelée « Compte » pour gérer les détails du compte d’un client particulier.
Diagrame de classe:

# Définir la classe Compte class Compte: # Déclarer une variable pour stocker le nom du titulaire du # compte def __init__(self, nom, num_compte, solde): # Attribue à la variable nom la valeur du paramètre nom self.nom = nom # Attribue à la variable num_compte la valeur du paramètre # num_compte fourni self.num_compte = num_compte # Attribue à la variable solde la valeur du paramètre solde self.solde = solde # Méthode pour récupérer le nom du titulaire du compte def get_nom(self): # Retourner la valeur de la variable nom return self.nom # Méthode pour définir le nom du titulaire du compte def set_nom(self, nom): # Attribue à la variable nom la valeur du paramètre nom self.nom = nom # Méthode pour récupérer le numéro de compte def get_num_compte(self): # Retourner la valeur de la variable num_compte return self.num_compte # Méthode pour définir le numéro de compte def set_num_compte(self, num_compte): # Attribue à la variable num_compte la valeur du paramètre # num_compte fourni self.num_compte = num_compte # Méthode pour récupérer le solde du compte def get_solde(self): # Retourner la valeur de la variable solde return self.solde # Méthode pour définir le solde du compte def set_solde(self, solde): # Attribue à la variable solde la valeur du paramètre solde self.solde = solde # Méthode de dépôt d'un montant sur le compte def deposer(self, montant): # Augmenter le solde du montant spécifié self.solde += montant # Méthode de retrait d'un montant du compte def retirer(self, montant): # Réduire le solde du montant spécifié self.solde -= montant # Méthode pour récupérer les informations sur le compte def get_compte_info(self): # Renvoyer une chaîne contenant le nom, le numéro de compte # et le solde return f"Nom: {self.nom}, Numéro de compte: {self.num_compte}, Solde: {self.solde}" # Définir la classe Banque class Banque: # Déclarer une liste pour stocker les comptes def __init__(self): # Initialiser la liste de comptes self.comptes = [] # Méthode pour ajouter un compte à la liste des comptes def add_compte(self, compte): # Ajouter le compte donné à la liste de comptes self.comptes.append(compte) # Méthode pour supprimer un compte de la liste des comptes def remove_compte(self, compte): # Supprime le compte donné de la liste de comptes self.comptes.remove(compte) # Méthode pour déposer de l'argent sur un compte spécifique def deposer_argent(self, compte, montant): # Appeler la méthode de dépôt sur le compte donné avec le # montant spécifié compte.deposer(montant) # Méthode pour retirer de l'argent d'un compte spécifique def retirer_argent(self, compte, montant): # Appeler la méthode de retrait sur le compte donné avec le # montant spécifié compte.retirer(montant) # Méthode pour obtenir la liste de tous les comptes def get_comptes(self): # Retourner la liste des comptes return self.comptes # Code pour tester la classe Compte et Banque if __name__ == "__main__": # Créer un nouvel objet Banque b = Banque() # Créer trois nouveaux objets Compte avec les détails initiaux cpt1 = Compte("Alex Babtise", "C101", 8000) cpt2 = Compte("Ali Koris", "C102", 6500) cpt3 = Compte("Bob Finor", "C103", 50000) # Ajouter les trois comptes à la Banque b b.add_compte(cpt1) b.add_compte(cpt2) b.add_compte(cpt3) # Récupérer la liste des comptes de la Banque b comptes = b.get_comptes() # Parcourir chaque compte de la liste des comptes for cpt in comptes: # Afficher les informations relatives à chaque compte print(cpt.get_compte_info()) # Afficher un message indiquant le début d'une opération de dépôt print("\nAprès avoir déposé 500 dans cpt1:") # Déposé 500 dans cpt1 b.deposer_argent(cpt1, 500) # Affichez les informations de compte mises à jour pour cpt1 print(cpt1.get_compte_info()) # Afficher un message indiquant qu'il n'y a pas de transaction # pour cpt2 print("Pas de transaction dans cpt2:") # Afficher les informations relatives à cpt2 print(cpt2.get_compte_info()) # Afficher un message indiquant le début d'une opération de # retrait print("Après avoir retiré 2000 de cpt3 :") # Retiré 2000 de cpt3 b.retirer_argent(cpt3, 2000) # Affichez les informations de compte mises à jour pour cpt3 print(cpt3.get_compte_info())
Sortie:
Nom: Alex Babtise, Numéro de compte: C101, Solde: 8000.0 Nom: Ali Koris, Numéro de compte: C102, Solde: 6500.0 Nom: Bob Finor, Numéro de compte: C103, Solde: 50000.0 Après avoir déposé 500 dans cpt1: Nom: Alex Babtise, Numéro de compte: C101, Solde: 8500.0 Pas de transaction dans cpt2: Nom: Ali Koris, Numéro de compte: C102, Solde: 6500.0 Après avoir retiré 2000 de cpt3 : Nom: Bob Finor, Numéro de compte: C103, Solde: 48000.0
É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

- 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