Это совпадение того, как часто происходит проверка. Если вы на самом деле l oop поверх и напечатаете свое значение, вы заметите, что оно с плавающей запятой:
while(True):
print('Current value is, ', (time.time()-start_t)%10)
Вы увидите следующий результат:
Current value is, 0.45271849632263184
Current value is, 0.45272231101989746
Учитывая, что вы вы так мало делаете в своем l oop, велика вероятность, что вы случайно сделаете эту оценку, когда текущее значение точно 0.0
. Но когда вы добавляете некоторые дополнительные вычисления, даже просто форматирование строки в datetime, каждая итерация вашего l oop займет немного больше времени, и вы можете просто пропустить 0.0
.
Итак, строго говоря, вы должны преобразовать свое значение в int, прежде чем сравнивать его с 0. Например, int((time.time() - start_t) % 10) == 0
. Это будет верно в течение целой секунды, пока значение модуля снова не станет отличным от нуля, через секунду после того, как оно стало истинным.
Однако лучшее решение - это, вероятно, просто использовать функцию time.sleep()
. Вы можете вызвать time.sleep, чтобы засыпать на определенное количество секунд:
time.sleep(10) # Sleep for 10 seconds