Exercice Corrigé: Les classes POO Python – Partie 9
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:
Écrire un programme Python pour créer une classe appelée « Animal » avec des attributs tels que le nom, la race et l’âge. Créez des sous-classes « Chien » et « Oiseau » qui ajoutent des attributs spécifiques tels que le jouet préféré pour les chiens et la taille de l’aile pour les oiseaux. Implémentez des méthodes pour afficher les détails de l’animal et calculer son âge en années humaines.
Diagrame de classe:

# Définir la classe Animal class Animal: # Constructeur de la classe Animal def __init__(self, nom, race, age): self.nom = nom # Nom de l'animal self.race = race # Race de l'animal self.age = age # Âge de l'animal en années # Méthode d'affichage des détails de l'animal def afficher(self): print("Nom:", self.nom) print("Race:", self.race) print("Age:", self.age, "années") # Méthode de calcul de l'âge de l'animal en années humaines def calculer_age(self): if self.race == "Chien": # L'âge des chiens en années humaines return self.age * 7 else: # En supposant que l'âge de l'oiseau en années humaines # est le même que l'âge réel return self.age # Définir la classe Chien qui hérite de Animal class Chien(Animal): # Attribut supplémentaire pour la classe Chien def __init__(self, nom, age, jouet): # Appeler le constructeur de la classe mère super().__init__(nom, "Chien", age) self.jouet = jouet # Jouet préféré du chien # Surcharger la méthode afficher pour inclure le jouet préféré def afficher(self): # Appeler la méthode de la classe mère super().afficher() print("Le jouet préféré:", self.jouet) # Définir la classe Oiseau qui hérite de Animal class Oiseau(Animal): # Attribut supplémentaire pour la classe Oiseau def __init__(self, nom, age, taille_aile): # Appeler le constructeur de la classe mère super().__init__(nom, "Oiseau", age) # Taille de l'aile en mètres self.taille_aile = taille_aile # Surcharger la méthode afficher pour inclure la taille de l'aile def afficher(self): # Appeler la méthode de la classe mère super().afficher() print("La taille de l'aile:", self.taille_aile, "mètres") # Code de test if __name__ == "__main__": # Créer une instance de Chien c = Chien("Beagle", 4, "Cordes") # Créer une instance de Oiseau o = Oiseau("Calopsitte", 3, 1.5) # Afficher les informations sur le chien print("Informations sur le chien:") c.afficher() print("Âge du chien en années humaines:", c.calculer_age()) # Afficher les informations sur l'oiseau print("\nInformations sur l'oiseau:") o.afficher() print("Âge de l'oiseau en années humaines:", o.calculer_age())
Sortie:
Informations sur le chien: Nom: Beagle Race: Chien Age: 4 années Le jouet préféré: Cordes Âge du chien en années humaines: 28 Informations sur l'oiseau: Nom: Calopsitte Race: Oiseau Age: 3 années La taille de l'aile: 1.5 mètres Âge de l'oiseau en années humaines: 3
Exercice 2:
Écrire un programme Python pour créer une classe appelée « AbonnementGym » avec des attributs pour le nom du membre, le type d’adhésion et la durée. Créer une sous-classe « AbonnementPremium » qui ajoute des attributs pour la disponibilité d’un entraîneur personnel et l’accès au spa. Implémentez des méthodes pour calculer les frais d’adhésion et vérifier s’il existe des offres spéciales basées sur le type d’adhésion.
Diagrame de classe:

class AbonnementGym: # Constructeur pour AbonnementGym def __init__(self, nom, type_abonnement, duree): self.nom = nom # Nom du membre self.type = type_abonnement # Type d'abonnement self.duree = duree # Durée en mois # Méthode de calcul des frais d'adhésion def calculer_frais(self): base = 50.0 # Frais de base par mois return base * self.duree # Méthode pour vérifier les offres spéciales def check_offres_speciales(self): if self.type.lower() == "annuelle": return "10% réduction sur l'adhésion annuelle." else: return "Aucune offre spéciale n'est disponible." # Méthode d'affichage des détails de l'abonnement def afficher(self): print("Nom du membre:", self.nom) print("Type d'abonnement:", self.type) print("Durée:", self.duree, "mois") print("Frais d'abonnement:", self.calculer_frais(), "€") print("Offre spéciale:", self.check_offres_speciales()) class AbonnementPremium(AbonnementGym): # Attributs supplémentaires pour AbonnementPremium def __init__(self, nom, type_abonnement, duree, entraineur_personnel, acces_spa): # Appeler le constructeur de la classe mère super().__init__(nom, type_abonnement, duree) # Accès à un entraîneur personnel self.entraineur_personnel = entraineur_personnel # Accès au spa self.acces_spa = acces_spa # Surcharger la méthode calculer_frais pour inclure des coûts # supplémentaires def calculer_frais(self): # Appeler la méthode de la classe mère base = super().calculer_frais() frais_supplementaires = 0.0 if self.entraineur_personnel: # Frais supplémentaires par mois pour un entraîneur # personnel frais_supplementaires += 30.0 * self.duree if self.acces_spa: # Frais supplémentaires par mois pour l'accès au spa frais_supplementaires += 20.0 * self.duree return base + frais_supplementaires # Surcharger la méthode afficher pour inclure les détails de # l'abonnement premium def afficher(self): # Appeler la méthode de la classe mère super().afficher() print("Entraîneur personnel disponible:", "Oui" if self.entraineur_personnel else "Non") print("Accès au spa:", "Oui" if self.acces_spa else "Non") # Code de test if __name__ == "__main__": # Créer une instance de AbonnementGym a = AbonnementGym("Alex Babto", "Mensuel", 5) # Créer une instance de AbonnementPremium b = AbonnementPremium("Emily Lyona", "Annuelle", 12, True, True) # Afficher les détails de l'abonnement de base print("Détails de l'abonnement de base:") a.afficher() # Afficher les détails de l'abonnement premium print("\nDétails de l'abonnement premium:") b.afficher()
Sortie:
Détails de l'abonnement de base: Nom du membre: Alex Babto Type d'abonnement: Mensuel Durée: 5 months Frais d'abonnement: 250.0 € Offre spéciale: Aucune offre spéciale n'est disponible. Détails de l'abonnement premium: Nom du membre: Emily Lyona Type d'abonnement: Annuelle Durée: 12 months Frais d'abonnement: 1200.0 € Offre spéciale: 10% réduction sur l'adhésion annuelle. Entraîneur personnel disponible: Oui Accès au spa: Oui
É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