Gestión de cursos y comparación de datos

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás a crear y administrar información de cursos, incluyendo la creación de instancias de cursos, almacenarlas en un diccionario, hacer una copia de seguridad de los datos, actualizar la información del curso y comparar la información actualizada con los datos anteriores.

👀 Vista previa

Linux - Nuevos datos
CURSO Linux
Número de laboratorios: 20
Público: Verdadero
Precio: 199
Linux - Datos antiguos
CURSO Linux
Número de laboratorios: 10
Público: Verdadero
Precio: 99
---------------------------
Python - Nuevos datos
CURSO Python
Número de laboratorios: 10
Público: Verdadero
Precio: 99
Python - Datos antiguos
CURSO Python
Número de laboratorios: 7
Público: Verdadero
Precio: 79
---------------------------

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo crear las clases Course y BootcampCourse
  • Cómo crear instancias de BootcampCourse y almacenarlas en un diccionario
  • Cómo hacer una copia de seguridad de la información del curso
  • Cómo actualizar el número de laboratorios y el precio de cada curso
  • Cómo comparar la información actualizada del curso con los datos guardados previamente

🏆 Logros

Después de completar este proyecto, podrás:

  • Comprender el concepto de herencia y cómo crear subclases en Python
  • Implementar métodos para actualizar y comparar la información del curso
  • Utilizar diccionarios para almacenar y administrar datos de cursos
  • Hacer copias de seguridad de los datos y comparar la información actualizada con los registros anteriores

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) 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{{"Gestión de cursos y comparación de datos"}} python/dictionaries -.-> lab-302713{{"Gestión de cursos y comparación de datos"}} python/classes_objects -.-> lab-302713{{"Gestión de cursos y comparación de datos"}} python/constructor -.-> lab-302713{{"Gestión de cursos y comparación de datos"}} python/inheritance -.-> lab-302713{{"Gestión de cursos y comparación de datos"}} python/data_serialization -.-> lab-302713{{"Gestión de cursos y comparación de datos"}} end

Crear las clases Course y BootcampCourse

En este paso, aprenderás a crear las clases Course y BootcampCourse.

  1. Abra el archivo course.py ubicado en el directorio /home/labex/project.

  2. En la clase Course:

    • Defina el método __init__ que tome el nombre del curso, si es público o no y el número de laboratorios.
    • Implemente la propiedad count para devolver el número de laboratorios.
    • Implemente el método typename para devolver el tipo de objeto.
    • Implemente el método info para imprimir el nombre del curso y el typename.
    • Implemente el método is_public para devolver el estado público del curso.
    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. En la clase BootcampCourse:

    • Defina el método __init__ que tome el nombre del curso, el número de laboratorios y el precio. Llame al método __init__ de la clase Course y establezca el estado público en True.
    • Implemente el método update que tome el nuevo número de laboratorios y el nuevo precio y actualice los atributos correspondientes.
    • Implemente el método info que llame al método info de la clase Course y luego imprima el número de laboratorios, el estado público y el precio.
    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)

Crear y administrar cursos

En este paso, aprenderás a crear instancias de BootcampCourse, almacenarlas en un diccionario y hacer una copia de seguridad de la información del curso.

  1. En el bloque if __name__ == "__main__"::

    • Crea dos instancias de BootcampCourse: linux_course y python_course.
    • Crea un diccionario llamado course_dict y almacena las dos instancias de curso en él, utilizando los nombres de los cursos como claves.
    • Crea una copia de seguridad de course_dict haciendo una copia profunda de él y almacenándola en 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)

Actualizar la información del curso

En este paso, aprenderás a actualizar el número de laboratorios y el precio de cada curso.

  1. En el bloque if __name__ == "__main__"::

    • Actualiza el número de laboratorios y el precio del linux_course utilizando el método update.
    • Actualiza el número de laboratorios y el precio del python_course utilizando el método update.
    ## actualizar el número de laboratorios y el precio
    linux_course.update(20, 199)
    python_course.update(10, 99)

Comparar la información del curso

En este paso, aprenderás a comparar la información actualizada del curso con la información del curso guardada previamente.

  1. En el bloque if __name__ == "__main__"::

    1. Itera a través de las claves en el course_dict (que son "Linux" y "Python").
    2. Para cada clave:
    • Imprime el nombre del curso y la etiqueta "- Nuevos datos".
    • Llama al método info en la instancia de curso correspondiente en el course_dict.
    • Imprime el nombre del curso y la etiqueta "- Datos antiguos".
    • Llama al método info en la instancia de curso correspondiente en el backup_course_dict.
    • Imprime una línea separadora.
## comparar con la copia de seguridad
for name in ("Linux", "Python"):
    print(name, "- Nuevos datos")
    course_dict[name].info()
    print(name, "- Datos antiguos")
    backup_course_dict[name].info()
    print("---------------------------")

Ejecuta el archivo course.py para ver la salida.

python3 course.py

Salida:

Linux - Nuevos datos
COURSE Linux
Lab count: 20
Public: True
Price: 199
Linux - Datos antiguos
COURSE Linux
Lab count: 10
Public: True
Price: 99
---------------------------
Python - Nuevos datos
COURSE Python
Lab count: 10
Public: True
Price: 99
Python - Datos antiguos
COURSE Python
Lab count: 7
Public: True
Price: 79
---------------------------
✨ Revisar Solución y Practicar

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.