Python超时

问题描述

我目前正在使用覆盆子pi编写具有LED的一维乒乓游戏。我正在尝试使用gpiozero库完成此操作。我想要的是实现一种方法,一旦LED指示灯亮起,我就启动一个计时器,如果在所述计时器之前未按下按钮,它将中断循环。

我想按照以下方式做些事情:

while True:
  led.on()
  if button.value != 1 (in t seconds):
    break
  led.off()

但是我不知道如何实现(以t秒为单位)。我必须控制超时发生的事情,这一点很重要,因为我计划让它调用确定赢家的函数

解决方: 我认为有一种方法可以检测LED是否亮着,所以我就做到了

while led.value == 1:
  if button.press == 1:
    press = 1

if press ==1:
  continue
else:
  break

解决方法

您可以像这样使用time.time()

import time

start = time.time()
tseconds = 2
while True:
    print("led.on")
    now = time.time()
    # if button.value != 1.. your conditions
    if not now  - start > tseconds:
        print(now - start)
    else:
        break
print("lead.off")