Напишите приложение для получения минимального целого числа из списка. Значения списка вводятся череди пропуска в одной строке
Кол:
s = [87, 6, 25, 7, 105, 23, 56]
for i in range(0,7):
if s[i] < s[i+1]:
print(s[i])
Результат:
6
7
23
ошибка
Traceback (most recent call last):
File "main.py", line 3, in <module>
if s[i]<s[i+1]:
IndexError: list index out of range
Но должно вывести 1 минимальное число
Ответы (3 шт):
Автор решения: Dmitry
→ Ссылка
Какие то типовые задачи пошли
коротко и просто, без for
s = [87, 6, 25, 7, 105, 23, 56]
print(min(s))
Если уж очень хочется перебирать весь список, то можно вот так
s = [87, 6, 25, 7, 105, 23, 56]
minimum = None
for i in s:
if minimum == None or i < minimum:
minimum = i
print(minimum)
ok, ok=) Или так
s = [87, 6, 25, 7, 105, 23, 56]
minimum = s[0]
for i in s:
if i < minimum:
minimum = i
print(minimum)
Автор решения: Эникейщик
→ Ссылка
Во-первых, даже без указанной ошибки этот код выведет не одно минимальное число, а все числа, которые меньше следующего в списке.
А во-вторых, нумерация элементов начинается с нуля, последний элемент в вашем списке имеет индекс 6. И когда вы обращаетесь к элементу номер 7 ([i+1] в последней итерации), то и получаете эту ошибку.
Автор решения: po100lit
→ Ссылка
range(0,7) диапазон из 7 значений, в последней итерации цикла s[i] < s[i+1] попытка обратиться к 8 значению