Почему в цикле выводиться одинаковые значения при использования функции min и max?

Нужно написать программу, в которой можно вводить рост, а после выведет Сумму, Минимальное значение и максимальное.

Код:

znach = 1
sum = 0

while True:
    a = int(input("Введите рост ученика: "))
    

    if a > 0:
        sum+=a
        m = min([a])
        u = max([a])

    if a == 0:
        znach = znach + 1
        print(f"Введено значений: {znach}")
        print(f"Суммарный рост: {sum}")
        print(f"Минимальный рост: {m}")
        print(f"Максимальный рост: {u}")

Ответы (1 шт):

Автор решения: Zhihar
  1. сначала накопите значения

     arr = []
    
     while True:
         a = int(input("Введите рост ученика: "))
         if a == 0:
             break
         arr.append(a)
    
  2. и лишь затем ищите максимумы и минимумы (так удобнее)

     print(min(arr), max(arr), sum(arr))
    

для задач в которых не вводятся миллионы значений - это оптимальный вариант

Ну или обрабатывайте каждое значение в цикле

    a_max = None
    while True:
        a = int(input("Введите рост ученика: "))
        if a == 0:
            break

        if a > a_max or a_max is None:
            a_max = a
→ Ссылка