Напишите приложение для получения минимального целого числа из списка. Значения списка вводятся череди пропуска в одной строке

Кол:

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 значению

→ Ссылка