Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3560877
А
Аноним
05 февраля 2026 13:48 · публичный вопрос
А
Аноним

Напишите функцию find_max, которая принимает список чисел в качестве аргумента и возвращает максимальное значение из списка.

Ответ нейросети
05 февраля 2026 13:48

Вот подробное решение задачи с пошаговыми объяснениями и примером использования.

Цель: понять, как реализовать функцию find_max, которая возвращает максимум в списке чисел.

  1. Простейшая реализация (ручной поиск максимума)
  • Шаг 1: проверить, что список не пустой. Если пустой, нельзя найти максимум, можно поднять исключение.
  • Шаг 2: взять первый элемент как начальное максимальное значение.
  • Шаг 3: пройтись по остальным элементам списка и обновлять максимум, когда встречается элемент больше текущего максимума.
  • Шаг 4: вернуть найденное максимальное значение.

Код: def find_max(nums): """Возвращает максимальное число в списке nums. Если список пустой, возбуждает ValueError.""" if not nums: raise ValueError("Список не должен быть пустым")

max_val = nums[0]
for num in nums[1:]:
    if num > max_val:
        max_val = num
return max_val

Пояснения:

  • max_val инициализируется первым элементом списка. Это важно, чтобы корректно работать с отрицательными числами.
  • Цикл по всем элементам кроме первого сравнивает каждое число с текущим максимумом и при необходимости обновляет его.
  • Время выполнения: O(n), где n — длина списка. Память: O(1) дополнительной памяти.
  1. Альтернатива с использованием встроенной функции max (короткая версия)
  • Если разрешено использовать готовые средства языка, можно получить максимум одной строкой.

Код: def find_max(nums): if not nums: raise ValueError("Список не должен быть пустым") return max(nums)

Пояснения:

  • max(nums) делает ту же работу внутри, но реализации скрыты от пользователя.
  • Сложность по времени та же (O(n)), по памяти — O(1) дополнительной памяти.
  1. Примеры использования print(find_max([3, 1, 4, 2])) # 4 print(find_max([-5, -1, -3, -1])) # -1 print(find_max([7])) # 7

  2. Примечания

  • Если нужен вариант без выброса исключения для пустого списка, можно вернуть None вместо исключения: def find_max(nums): if not nums: return None max_val = nums[0] for num in nums[1:]: if num > max_val: max_val = num return max_val

  • В задачах средней школы чаще принимается решение с явной инициализацией максимума и перебором элементов, как в первом варианте.