我正在python中编写一个倒计时时钟,但看起来时间模块只下降到第二个。有没有办法让我准确确定何时经过1秒?
似乎我的问题有点令人困惑,让我澄清一下。我需要运行一些代码,然后,最后,程序进入while循环并退出一次,自代码开始运行以来至少已经过了1000毫秒
答案 0 :(得分:1)
这是一种可行的方法,但我不确定您只限于哪些模块。
import time
def procedure:
time.sleep(2.5)
# measure wall time
t0 = time.time()
procedure()
print time.time() - t0, "seconds wall time"
2.50023603439秒时间
其中procedure是对您正在计时的函数的引用。
答案 1 :(得分:1)
如果知道您要运行的代码将花费不到1秒,那么1 - elapsed time
将为您提供剩余的睡眠时间,不需要while
循环。
now = time.time()
foo()
time.sleep(1 - (time.time() - now))
算术会有一些开销,但它在1/100秒内,并且严格地大于1秒,如您所要求的那样。我运行了以下代码:
import time
import random
def foo():
time.sleep(random.random())
now = time.time()
foo()
time.sleep(1 - (time.time() - now))
print "Time elapsed: {}".format(time.time() - now)
输出:
Time elapsed: 1.00379300117
无论foo
花费多长时间,您都可以多次运行以验证它是否提供了您想要的输出。
除非花费的时间超过1秒,否则睡眠时间将为负,这将导致IOError
。您需要检查该案例。
或者,如果您需要在1秒后终止该功能,请检查this question
答案 2 :(得分:0)
默认情况下,time
模块会为您提供10 ^ -5秒的时间
import time
time.time()
>>> 1480643510.89443