← Все вопросы
Как найти самое большое число в списке циклом, не используя max?
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] упадёт с ошибкой. Для школьных задач обычно гарантируют хотя бы один элемент, но привычка полезная.
Ваш ответ
Войдите, чтобы ответить на вопрос.