Sistema de Gestión de Misiones Espaciales

PythonBeginner
Practicar Ahora

Introducción

¡Bienvenido al Desafío de Estructuras de Datos en Python de la Academia Espacial LabEx! Como nuevo recluta, tu tarea será completar un sistema básico de gestión de misiones espaciales. Este desafío te ayudará a practicar el uso de estructuras de datos fundamentales en Python, como listas, diccionarios y conjuntos (sets).

Este es un Desafío (Challenge), que a diferencia de un Laboratorio Guiado, requiere que intentes completar la tarea de forma independiente en lugar de seguir pasos detallados. Los desafíos suelen tener un nivel de dificultad mayor. Si te encuentras bloqueado, puedes consultar con Labby o revisar la solución propuesta. Los datos históricos muestran que este es un desafío de nivel principiante con una tasa de aprobación del 90%. Ha recibido una tasa de valoraciones positivas del 92% por parte de los estudiantes.

Completa el Sistema de Gestión de Misiones Espaciales

En este desafío, deberás completar un script de Python parcialmente desarrollado que gestiona misiones espaciales utilizando diferentes estructuras de datos.

Tareas

  1. Abre el archivo mission_control.py ubicado en el directorio /home/labex/project. (Se recomienda usar el WebIDE).
  2. Completa las cuatro funciones en mission_control.py:
    • add_mission(missions, mission_details, name, details)
    • update_mission(mission_details, name, key, value)
    • display_missions(missions, mission_details)
    • list_astronauts(mission_details)
  3. Ejecuta el script y prueba su funcionamiento añadiendo una misión, actualizándola, mostrando todas las misiones y listando a los astronautas.

Requisitos

  • Completa las funciones en mission_control.py utilizando las estructuras de datos adecuadas:
    • Usa la lista missions para almacenar los nombres de las misiones.
    • Usa el diccionario mission_details para almacenar los detalles específicos de cada misión.
    • Usa un conjunto (set) para almacenar nombres únicos de astronautas en la función list_astronauts.
  • Asegúrate de que la función add_mission añada la nueva misión tanto a la lista missions como al diccionario mission_details.
  • La función update_mission debe modificar el detalle especificado de una misión concreta.
  • La función display_missions debe imprimir en pantalla todas las misiones con sus respectivos detalles.
  • La función list_astronauts debe devolver un conjunto con todos los astronautas únicos que participan en todas las misiones.

Ejemplo

Tras completar y ejecutar mission_control.py, la interacción debería ser similar a la siguiente:

$ python /home/labex/project/mission_control.py

Space Mission Management System
1. Add Mission
2. Update Mission
3. Display Missions
4. List Astronauts
5. Exit

Enter your choice: 1
Enter mission name: Mars Expedition
Enter destination: Mars
Enter launch date: 2030-01-01
Enter crew members (comma-separated): John Doe, Jane Smith

Mission added successfully!

Enter your choice: 3

All Missions:
1. Mars Expedition
   Destination: Mars
   Launch Date: 2030-01-01
   Crew: John Doe, Jane Smith

Enter your choice: 4

All Astronauts:
- John Doe
- Jane Smith

Enter your choice: 5
Exiting Space Mission Management System. Goodbye!
✨ Revisar Solución y Practicar

Resumen

En este desafío, has completado un script de Python para gestionar misiones espaciales empleando diversas estructuras de datos. Has practicado el uso de listas para organizar nombres, diccionarios para estructurar detalles complejos y conjuntos para filtrar elementos únicos como los nombres de los astronautas. Este ejercicio ha reforzado tu comprensión sobre cómo elegir y aplicar las estructuras de datos de Python en escenarios prácticos de gestión de información.