Gestion des Cours et Comparaison des Données

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à créer et à gérer des informations sur les cours, notamment en créant des instances de cours, en les stockant dans un dictionnaire, en effectuant une sauvegarde des données, en mettant à jour les informations sur le cours et en comparant les informations mises à jour avec les données précédentes.

👀 Aperçu

Linux - Nouvelles données
COURSE Linux
Nombre de laboratoires : 20
Public : Vrai
Prix : 199
Linux - Anciennes données
COURSE Linux
Nombre de laboratoires : 10
Public : Vrai
Prix : 99
---------------------------
Python - Nouvelles données
COURSE Python
Nombre de laboratoires : 10
Public : Vrai
Prix : 99
Python - Anciennes données
COURSE Python
Nombre de laboratoires : 7
Public : Vrai
Prix : 79
---------------------------

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment créer les classes Course et BootcampCourse
  • Comment créer des instances de BootcampCourse et les stocker dans un dictionnaire
  • Comment effectuer une sauvegarde des informations sur le cours
  • Comment mettre à jour le nombre de laboratoires et le prix de chaque cours
  • Comment comparer les informations mises à jour sur le cours avec les données précédemment enregistrées

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre le concept d'héritage et de créer des sous-classes en Python
  • Implémenter des méthodes pour mettre à jour et comparer les informations sur le cours
  • Utiliser des dictionnaires pour stocker et gérer les données sur les cours
  • Effectuer des sauvegardes de données et comparer les informations mises à jour avec les enregistrements précédents

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/dictionaries("Dictionaries") python/ObjectOrientedProgrammingGroup -.-> python/classes_objects("Classes and Objects") python/ObjectOrientedProgrammingGroup -.-> python/constructor("Constructor") python/ObjectOrientedProgrammingGroup -.-> python/inheritance("Inheritance") python/PythonStandardLibraryGroup -.-> python/data_serialization("Data Serialization") subgraph Lab Skills python/for_loops -.-> lab-302713{{"Gestion des Cours et Comparaison des Données"}} python/dictionaries -.-> lab-302713{{"Gestion des Cours et Comparaison des Données"}} python/classes_objects -.-> lab-302713{{"Gestion des Cours et Comparaison des Données"}} python/constructor -.-> lab-302713{{"Gestion des Cours et Comparaison des Données"}} python/inheritance -.-> lab-302713{{"Gestion des Cours et Comparaison des Données"}} python/data_serialization -.-> lab-302713{{"Gestion des Cours et Comparaison des Données"}} end

Créer les classes Course et BootcampCourse

Dans cette étape, vous allez apprendre à créer les classes Course et BootcampCourse.

  1. Ouvrez le fichier course.py situé dans le répertoire /home/labex/project.

  2. Dans la classe Course :

    • Définissez la méthode __init__ qui prend en paramètre le nom du cours, s'il est public ou non et le nombre de laboratoires.
    • Implémentez la propriété count pour renvoyer le nombre de laboratoires.
    • Implémentez la méthode typename pour renvoyer le type d'objet.
    • Implémentez la méthode info pour afficher le nom du cours et le typename.
    • Implémentez la méthode is_public pour renvoyer l'état public du cours.
    class Course:
     OBJECT_TYPE = "COURSE"
    
     def __init__(self, name, public, lab_count):
         self.name = name
         self.public = public
         self.lab_count = lab_count
    
     @property
     def count(self):
         return self.lab_count
    
     def typename(self):
         return self.OBJECT_TYPE
    
     def info(self):
         print(self.typename(), self.name)
    
     def is_public(self):
         return self.public
  3. Dans la classe BootcampCourse :

    • Définissez la méthode __init__ qui prend en paramètre le nom du cours, le nombre de laboratoires et le prix. Appelez la méthode __init__ de la classe Course et définissez l'état public sur True.
    • Implémentez la méthode update qui prend en paramètre le nouveau nombre de laboratoires et le nouveau prix, et met à jour les attributs correspondants.
    • Implémentez la méthode info qui appelle la méthode info de la classe Course puis affiche le nombre de laboratoires, l'état public et le prix.
    class BootcampCourse(Course):
     def __init__(self, name, lab_count, price):
         super().__init__(name, True, lab_count)
         self.price = price
    
     def update(self, lab_count, price):
         self.lab_count = lab_count
         self.price = price
    
     def info(self):
         super().info()
         print("Lab count:", self.count)
         print("Public:", self.public)
         print("Price:", self.price)

Créer et Gérer des Cours

Dans cette étape, vous allez apprendre à créer des instances de BootcampCourse, les stocker dans un dictionnaire et effectuer une sauvegarde des informations sur les cours.

  1. Dans le bloc if __name__ == "__main__": :

    • Créez deux instances de BootcampCourse : linux_course et python_course.
    • Créez un dictionnaire appelé course_dict et stockez les deux instances de cours dans celui-ci, en utilisant les noms des cours comme clés.
    • Effectuez une sauvegarde de course_dict en effectuant une copie profonde de celui-ci et en le stockant dans backup_course_dict.
    if __name__ == "__main__":
       linux_course = BootcampCourse("Linux", 10, 99)
       python_course = BootcampCourse("Python", 7, 79)
    
       ## build course dict
       course_dict = {"Linux": linux_course, "Python": python_course}
    
       ## copy and backup course dict
       backup_course_dict = copy.deepcopy(course_dict)

Mettre à Jour les Informations sur les Cours

Dans cette étape, vous allez apprendre à mettre à jour le nombre de laboratoires et le prix de chaque cours.

  1. Dans le bloc if __name__ == "__main__": :

    • Mettez à jour le nombre de laboratoires et le prix du linux_course à l'aide de la méthode update.
    • Mettez à jour le nombre de laboratoires et le prix du python_course à l'aide de la méthode update.
    ## update lab count and price
    linux_course.update(20, 199)
    python_course.update(10, 99)

Comparer les Informations sur les Cours

Dans cette étape, vous allez apprendre à comparer les informations mises à jour sur les cours avec les informations précédemment enregistrées sur les cours.

  1. Dans le bloc if __name__ == "__main__": :

    1. Parcourez les clés dans le course_dict (qui sont "Linux" et "Python").
    2. Pour chaque clé :
    • Affichez le nom du cours et l'étiquette "- Nouvelles données".
    • Appelez la méthode info sur l'instance de cours correspondante dans le course_dict.
    • Affichez le nom du cours et l'étiquette "- Anciennes données".
    • Appelez la méthode info sur l'instance de cours correspondante dans le backup_course_dict.
    • Affichez une ligne de séparation.
## compare with backup
for name in ("Linux", "Python"):
    print(name, "- Nouvelles données")
    course_dict[name].info()
    print(name, "- Anciennes données")
    backup_course_dict[name].info()
    print("---------------------------")

Exécutez le fichier course.py pour voir la sortie.

python3 course.py

Sortie :

Linux - Nouvelles données
COURSE Linux
Nombre de laboratoires : 20
Public : Vrai
Prix : 199
Linux - Anciennes données
COURSE Linux
Nombre de laboratoires : 10
Public : Vrai
Prix : 99
---------------------------
Python - Nouvelles données
COURSE Python
Nombre de laboratoires : 10
Public : Vrai
Prix : 99
Python - Anciennes données
COURSE Python
Nombre de laboratoires : 7
Public : Vrai
Prix : 79
---------------------------
✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.