← Все вопросы

Как найти самое большое число в списке циклом, не используя max?

Задан 4 месяца назад592 просмотров2 ответа
6

По заданию нельзя пользоваться max(), надо самому найти максимум списка через перебор. Я начал с biggest = 0, но если все числа отрицательные, то получается ерунда. Как правильно задать начальное значение?

2 ответа

11
✓ Принятый ответ — помог автору

Хорошая мысль про отрицательные — именно поэтому biggest = 0 плохо. Правильнее взять за начальный максимум первый элемент списка, а потом сравнивать с остальными:

nums = [-5, -2, -9, -1]
biggest = nums[0]
for x in nums:
    if x > biggest:
        biggest = x
print(biggest)   # -1

Теперь начальное значение точно из самого списка, и отрицательные числа обрабатываются правильно. Минимум ищется так же, только знак сравнения меняешь на <.

3

Если список может быть пустым, перед циклом стоит это проверить — иначе nums[0] упадёт с ошибкой. Для школьных задач обычно гарантируют хотя бы один элемент, но привычка полезная.

Ваш ответ

Войдите, чтобы ответить на вопрос.