min(a, b, ...)Возвращает наименьший из переданных значений.
Чтобы понять ветвление глубже, построим минимум и максимум вручную: заведём текущего кандидата и заменим его только при более сильном значении.
Чтобы понять ветвление глубже, построим минимум и максимум вручную: заведём текущего кандидата и заменим его только при более сильном значении.
Встроенные min и max полезны, но ручной кандидат показывает инвариант: после каждой проверки best хранит лучший результат среди уже просмотренных значений.
Кандидат. Первое допустимое значение, от которого начинается поиск.
Инвариант. Утверждение, которое остаётся истинным после каждой итерации или проверки.
Равенство. Знак > оставляет первую позицию максимума; >= оставляет последнюю.
Независимость. Для последовательного сравнения значений нужны отдельные if, а не elif.
Запусти короткую программу и переходи по строкам. Визуализатор показывает только код, текущую строку, переменные и вывод.
Нельзя начинать максимум с нуля, если данные могут быть отрицательными. Начни с первого элемента или явно заданной нижней границы из условия. Когда нужен не только максимум, но и его позиция, обновляй значение и индекс одной ветвью. Встроенные min и max не работают с пустой последовательностью без дополнительных аргументов.
min(a, b, ...)Возвращает наименьший из переданных значений.
max(a, b, ...)Возвращает наибольший из переданных значений.
if value > bestУсловие улучшения кандидата.
enumerate(values)Даёт пары (индекс, значение) при поиске позиции в последовательности.
map(int, input().split())Читает несколько целых из строки.
printВыводит найденный кандидат.