Проблема с list в python
Я написал небольшую программу для того, чтобы в каждой строке выводилось наименьшее число (это обязательно нужно было сделать через split).
m = []
s = ['end'] #ключ стопер
while True:
n = input().split() #вводим через сплит
k = min(n) #ищем минимальное
if n == s:
break
m.append(k)
for i in m: #выводим красиво
print(i)
В принципе, программа работает почти корректно, но я не заметил одну странность. Если вводить -100, то тогда оно всегда будет наименьшим, даже если условно есть -200. Можете подсказать, в чем ошибка? Почему list отдает приоритет -100?
Ответы (1 шт):
Автор решения: Dark Space
→ Ссылка
Проблема в том, что input возвращает тип str, поэтому вы сравниваете строки, а не числа. Попробуйте применять функции int() или float() для каждого числа перед тем, как выбирать минимальное.
Как пример:
numbers = [] # Список для минимальных чисел
# До тех пор, пока пользователь не введёт 'end'
while answer:= input('Введите числа - (end = выход)') != 'end':
# К каждому числу из разбитой строки применяю функцию `float()`
number_line = [float(item) for item in answer.split()]
# Ищу минимальное и добавляю его в набор
min_num = min(number_line)
numbers.append(min_num)
for item in numbers:
print(item)