Как сделать, чтобы выводились print() всех условий, если они разные? Надо вывести print() всех условий, а получается, что выводится только что-то одно

t = int(input())
h = t // 60
m = t - (h * 60)
if h >= 2:
    for i in range(m, -1, -20):
        print(f"До конца осталось {h} часов {i} минут")
elif h == 1:
    for i in range(m, -1, -10):    
        print(f"До конца осталось {h} часов {i} минут")
elif h == 0:      
    for i in range(m, -1, -5):
        print(f"До конца осталось {h} часов {i} минут")

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

Автор решения: MarianD

Вероятно, что я точно (или совсем) не понял, что вы хотите. Может быть, что-то такое:

t = int(input())

while t > 0:
    h, m = divmod(t, 60)
    print(f"До конца осталось {h} часов {m} минут")
    if h >= 2:
        t -= 20
    elif h == 1:
        t -= 10
    elif h == 0:      
        t -= 5

Вывод (например) для ввода 175:

До конца осталось 2 часов 55 минут
До конца осталось 2 часов 35 минут
До конца осталось 2 часов 15 минут
До конца осталось 1 часов 55 минут
До конца осталось 1 часов 45 минут
До конца осталось 1 часов 35 минут
До конца осталось 1 часов 25 минут
До конца осталось 1 часов 15 минут
До конца осталось 1 часов 5 минут
До конца осталось 0 часов 55 минут
До конца осталось 0 часов 50 минут
До конца осталось 0 часов 45 минут
До конца осталось 0 часов 40 минут
До конца осталось 0 часов 35 минут
До конца осталось 0 часов 30 минут
До конца осталось 0 часов 25 минут
До конца осталось 0 часов 20 минут
До конца осталось 0 часов 15 минут
До конца осталось 0 часов 10 минут
До конца осталось 0 часов 5 минут

Объяснение:

  1. Стандартная функция divmod() делает сразу то, что вы сделали в 2 командах — в целочисленном делении вычисляет и частное, и остаток.

  2. В цикле while повторно вычисляем часы и минуты, выводим их на экран, и затем в зависимости от количества часов уменьшаем переменную t на соответствующее количество минут.

→ Ссылка