소개
LabEx 우주 아카데미의 파이썬 자료구조 챌린지에 오신 것을 환영합니다! 여러분은 신입 요원으로서 간단한 우주 임무 관리 시스템을 완성하게 됩니다. 이번 챌린지를 통해 리스트, 딕셔너리, 집합 (set) 과 같은 파이썬의 핵심 자료구조 활용 능력을 키울 수 있습니다.
우주 임무 관리 시스템 완성하기
이번 챌린지에서는 다양한 자료구조를 사용하여 우주 임무를 관리하는 파이썬 스크립트의 미완성 부분을 완성해야 합니다.
과제
/home/labex/project디렉토리에 있는mission_control.py파일을 엽니다. (WebIDE 사용을 권장합니다.)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)
- 스크립트를 실행하여 임무 추가, 업데이트, 전체 목록 표시, 우주비행사 명단 확인 기능이 정상적으로 작동하는지 테스트합니다.
요구 사항
- 적절한 자료구조를 사용하여
mission_control.py의 함수를 구현하세요:missions리스트를 사용하여 임무 이름을 저장합니다.mission_details딕셔너리를 사용하여 각 임무의 세부 정보를 저장합니다.list_astronauts함수에서는 중복되지 않는 우주비행사 이름을 저장하기 위해 집합 (set) 을 사용합니다.
add_mission함수는 새로운 임무를missions리스트와mission_details딕셔너리 양쪽 모두에 추가해야 합니다.update_mission함수는 지정된 임무의 특정 세부 정보를 수정해야 합니다.display_missions함수는 모든 임무와 그 세부 정보를 출력해야 합니다.list_astronauts함수는 모든 임무에 참여하는 우주비행사들의 중복 없는 집합을 반환해야 합니다.
실행 예시
mission_control.py를 완성하고 실행하면 다음과 같은 방식으로 상호작용이 이루어져야 합니다:
$ 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!
요약
이번 챌린지에서는 다양한 자료구조를 활용하여 우주 임무를 관리하는 파이썬 스크립트를 완성해 보았습니다. 임무 이름을 저장하는 리스트, 세부 정보를 관리하는 딕셔너리, 그리고 고유한 우주비행사 명단을 추출하기 위한 집합의 사용법을 익혔습니다. 이 실습을 통해 파이썬 자료구조의 개념을 다지고, 복잡한 데이터를 관리하는 실제적인 응용 능력을 강화할 수 있었습니다.



