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




