Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3140525
А
Аноним
25 апреля 2025 15:03 · публичный вопрос
А
Аноним

Написать программу и указать результат работы программы. Задача: На рынок труда вышла компания Apple&Яблоко и она разместила ряд ваканский: «фронтенд», «бэкенд», «fullstack»,…

Запрос пользователя

Написать программу и указать результат работы программы. Задача: На рынок труда вышла компания Apple&Яблоко и она разместила ряд ваканский: «фронтенд», «бэкенд», «fullstack», «мобильный разработчик», «десктоп разработчик», «аналитик данных», «тестировщик». Компания получила N резюме с описанием имени, фамилии, желаемой должности и опыта работы. В текущий момент компанию интересуют больше всего fullstack-разработчики. Необходимо из полученного списка отобрать список резюме на должность fullstack-разработчика и этот список отсортировать по убыванию опыта работы. Желательно предусмотреть проверку входных данных.

Ответ нейросети
25 апреля 2025 15:03

Понимаю! Вам нужно написать программу, которая:

  1. Считает список резюме.
  2. Отбирает резюме по должности «fullstack».
  3. Сортирует их по опыту работы в порядке убывания.
  4. Предусматривает проверку входных данных.

Давайте я предложу пример реализации на языке 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' (учитываем регистр).
  • Сортируем выбранные резюме по опыту работы по убыванию.
  • В примере — это список словарей, каждый из которых содержит сведения о кандидатах.

Если у вас есть конкретные данные, присылайте их — я помогу адаптировать решение под них!