Вы сравниваете равенство, но это предполагает, что возвращенная временная метка равна точно так же, как исходная, плюс 5,5 секунд. Этого не произойдет, если вам не повезет. Кроме того, вы выполняете эту проверку вправо после извлечения предыдущего раза, и нет никакой вероятности, что между этими двумя утверждениями пройдет 5,5 секунды.
Вы можете исправить это, используя соответствующий способ - или наивный способ.
Правильный способ справиться с этим - использовать time.sleep(5.5)
:
import time
time.sleep(5.5)
print("Time's up!")
Наивный способ реализовать его, как в вашем примере:
import time
end = time.time() + 5.5
while time.time() < end:
pass
print("Time's up")
Это будет вращать пустой цикл, пока не пройдет запрошенное время. Причина, по которой я называю это наивным, заключается в том, что ваша программа застрянет, тратя все доступные ресурсы ЦП, не делая ничего, кроме проверки часов и текущего времени, пока не прошло 5,5 секунд. В первом примере он сообщает операционной системе: «Эй, разбуди меня через 5,5 секунд», а другие процессы могут использовать процессор между ними.