Я пишу программу, которая через во время цикла принимает введенные пользователем данные и добавляет каждое значение в список (они являются температурами), пока пользователь не войдет 'q' (выйти). Мне нужно найти минимальное и максимальное значение списка. Вот мой код до сих пор:Найти минимальное, максимальное значение списка в Python
temps = []
daily = 1
daily = float(daily)
while daily != "q":
daily = (raw_input("Today's Temperature: "))
if str.isdigit(daily) and daily>0:
temps.append(daily)
elif daily<0:
print "Positive temperatures only please."
else:
print "Calculating statistics..."
temps = sorted(temps)
print map(float, temps)
maximum = (max(temps))
print "Maximum:",maximum
Когда я запускаю это и введите значение (90, 80, 70, 60, 50, кв) он отлично работает и дает мне 90, как максимум и 50, как минимум.
Однако, когда я запускаю это и вводим значения (30, 28, 1, 9, 26, 14, q), он возвращает 9 как максимум и 1 как минимум.
В основном, он обрабатывает 9.0 как больше любого числа, которое начинается с 8 или менее. (т. е. 88, 56, 30 и т. д.)
Как это исправить?
Не читать код, но вы, вероятно, сравнение строк, а не числа. Да, все эти температуры - это струны. Используйте 'int' или' double', чтобы превратить их в фактические числа. –
@tobias_k python использует 'float' not' double' – Holloway
Если какой-либо из ответов решил вашу проблему, пожалуйста, рассмотрите _accepting_ ответ, чтобы пометить вопрос как разрешенный. –