Как поставить условие на время?

Если я поставлю условие на текущее время, то программа сработает, а если поставить условие на время, которое нужно подождать, то программа входит в бесконечное ожидание. Почему?

import time 

now = time.localtime() 

hour = int(input("Укажите час.\nВвод: "))
minute = int(input("Укажите минуту.\nВвод: "))

while True:
    if now.tm_hour == hour and now.tm_min == minute:
        print("Hello World!")
        break

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

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

Переменная now задана один раз и тем самым вы сверяете одно и то же бесконечно.

import time

hour = int(input("Укажите час.\nВвод: "))
minute = int(input("Укажите минуту.\nВвод: "))

while True:
    now = time.localtime()
    if now.tm_hour == hour and now.tm_min == minute:
        print("Hello World!")
        break

Однако, лучше заместо time.localtime использовать datetime.now:

from datetime import datetime

hour = int(input("Укажите час.\nВвод: "))
minute = int(input("Укажите минуту.\nВвод: "))

while True:
    dt = datetime.now()
    if dt.hour == hour and dt.minute == minute:
        print("Hello World!")
        break
→ Ссылка