start = time.clock()
while True:
elapsed = (time.clock() - start)
if elapsed > 10:
print("MOTION")
elapsed = 0
我启动一个计时器,计算经过的时间,如果已经过了10秒,我显示“MOTION”然后重置为0,因此“MOTION”每10秒才会显示一次。由于某种原因,它不起作用:MOTION最初在10秒后显示,但在此之后,它会在每次迭代时不断显示。 我做错了什么?
答案 0 :(得分:1)
您忽略了重置参考时间:更改基础,而不是间隔。在每次迭代时,将elapsed
重置为0,然后立即返回到原始开始时间。更改循环的最后一行:
start = time.clock()
while True:
elapsed = (time.clock() - start)
if elapsed > 10:
print("MOTION")
start = time.clock()
答案 1 :(得分:1)
你有两种选择;您的代码无法正常工作,因为您尝试重置时钟,而是重置elapsed
,这样做无效。
使用模数除法。
start = time.clock()
while True:
elapsed = (time.clock() - start)
if int(elapsed) % 10:
print("MOTION")
重置时钟。
start = time.clock()
while True:
elapsed = (time.clock() - start)
if elapsed >= 10:
print("MOTION")
start = time.clock()