重置Python

时间:2018-01-22 20:51:14

标签: python

start = time.clock()
while True:
  elapsed = (time.clock() - start)
  if elapsed > 10:
    print("MOTION")
    elapsed = 0

我启动一个计时器,计算经过的时间,如果已经过了10秒,我显示“MOTION”然后重置为0,因此“MOTION”每10秒才会显示一次。由于某种原因,它不起作用:MOTION最初在10秒后显示,但在此之后,它会在每次迭代时不断显示。 我做错了什么?

2 个答案:

答案 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()