Количество входов может меняться
Функции min() и max() можно передать несколько отдельных значений. Например, max(1, 10, 3) возвращает 10, а min(1, -3, 2, 3, 2) — −3.
Это не тот же механизм, что один необязательный параметр: функция сравнивает все предоставленные значения, а не подставляет отсутствующую фиксированную позицию.
Задание источника
В учебном наборе температуры равны 3, 10, 22, −3 и 0. Найдите минимальную:
print(min(3, 10, 22, -3, 0))
Вывод — −3. В эталонном файле те же пять чисел стоят в немного другом порядке. Минимальное числовое значение от этой перестановки не меняется.
Две формы вызова
При передаче отдельных значений нужны как минимум два позиционных аргумента. Существует также форма с одним итерируемым объектом:
temperatures = (3, 10, 22, -3, 0)
print(min(temperatures)) # -3
Это редакционное дополнение устраняет возможное впечатление, что min всегда требует две записи внутри скобок. Один целочисленный аргумент, например min(3), не является последовательностью и не подходит для этой формы.
Результат и сравнимость
Функция возвращает минимальный элемент, а не его номер в наборе. Для смешения несравнимых объектов, например строки и целого, может возникнуть TypeError. В текущем упражнении все значения — целые, поэтому порядок сравнения определён.
Пример не представляет прогноз погоды: температуры являются фиксированными данными задания. Основная цель — передать несколько аргументов и использовать возвращённое значение.
Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Упражнение сохранено; вторая форма вызова дополнена.