Понимаю! Вам нужно написать программу, которая:
- Считает список резюме.
- Отбирает резюме по должности «fullstack».
- Сортирует их по опыту работы в порядке убывания.
- Предусматривает проверку входных данных.
Давайте я предложу пример реализации на языке Python с пошаговыми объяснениями.
# Описание программы
# Функция для фильтрации и сортировки резюме
def filter_and_sort_resumes(resumes):
"""
Принимает список словарей, каждый из которых представляет резюме,
и возвращает отсортированный по опыту работы список резюме на должность 'fullstack'.
"""
# Проверка входных данных
if not isinstance(resumes, list):
raise ValueError("Входные данные должны быть списком.")
for resume in resumes:
if not isinstance(resume, dict):
raise ValueError("Каждое резюме должно быть словарём.")
# Проверка обязательных ключей
required_keys = ['имя', 'фамилия', 'должность', 'опыт_работы']
for key in required_keys:
if key not in resume:
raise ValueError(f"Резюме должно содержать ключ '{key}'.")
# Проверка типов данных
if not isinstance(resume['имя'], str):
raise ValueError("Значение 'имя' должно быть строкой.")
if not isinstance(resume['фамилия'], str):
raise ValueError("Значение 'фамилия' должно быть строкой.")
if not isinstance(resume['должность'], str):
raise ValueError("Значение 'должность' должно быть строкой.")
if not (isinstance(resume['опыт_работы'], int) or isinstance(resume['опыт_работы'], float)):
raise ValueError("Значение 'опыт_работы' должно быть числом.")
# Отфильтровать резюме по должности 'fullstack'
fullstack_resumes = [res for res in resumes if res['должность'].lower() == 'fullstack']
# Отсортировать по опыту работы по убыванию
sorted_resumes = sorted(fullstack_resumes, key=lambda x: x['опыт_работы'], reverse=True)
return sorted_resumes
# Пример использования
# Входные данные (список резюме)
resumes = [
{'имя': 'Иван', 'фамилия': 'Иванов', 'должность': 'fullstack', 'опыт_работы': 3},
{'имя': 'Петр', 'фамилия': 'Петров', 'должность': 'бэкенд', 'опыт_работы': 5},
{'имя': 'Анна', 'фамилия': 'Кузнецова', 'должность': 'fullstack', 'опыт_работы': 5},
{'имя': 'Мария', 'фамилия': 'Смирнова', 'должность': 'фронтенд', 'опыт_работы': 2},
]
# Обработка данных
try:
result = filter_and_sort_resumes(resumes)
# Вывод результата
for res in result:
print(f"{res['имя']} {res['фамилия']} — {res['должность']}, опыт: {res['опыт_работы']} лет")
except ValueError as e:
print(f"Ошибка: {e}")
Объяснение:
- Мы объявляем функцию
filter_and_sort_resumes, которая принимает список резюме.
- Внутри функции мы делаем проверки входных данных, чтобы избежать ошибок.
- Отбираем резюме, где должность равна
'fullstack' (учитываем регистр).
- Сортируем выбранные резюме по опыту работы по убыванию.
- В примере — это список словарей, каждый из которых содержит сведения о кандидатах.
Если у вас есть конкретные данные, присылайте их — я помогу адаптировать решение под них!