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
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


