python:当按下按钮时,如何在某个列表索引处停止For循环

2024-05-15 22:17:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个简单的游戏。我有5个LED连接到每个GPIO引脚和一个按钮到另一个GPIO引脚。当游戏开始时,led灯随后会亮起/熄灭,从而产生跑步的感觉。当按下按钮时,我希望只有一个led亮起。我在下面写的脚本做到了这一点,但问题是,只有led连接到列表(索引0)中列出的第一个GPIO。 我想知道是否有办法在任何列表索引处中断FOR循环。对于下面的脚本,只有在FOR循环循环遍历列表中的索引时才会发生中断。 这是我的剧本: 进口零售物价指数作为GPIO 导入时间

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

Switch=21
GPIO.setup(Switch, GPIO.IN, pull_up_down=GPIO.PUD_UP)

LedList=[5,6,26,13,19]
for i in LedList:
    GPIO.setup(i, GPIO.OUT)

#test
GPIO.output(LedList, GPIO.HIGH)
time.sleep(0.5)
GPIO.output(LedList, GPIO.LOW)

def runlight():
    for i in LedList:
        print "L.e.d ",i
        GPIO.output(i, GPIO.HIGH)
        time.sleep(0.2)
        if input_state==True:
            GPIO.output(i, GPIO.LOW)
            time.sleep(0.1)

        elif input_state==False:
            print "button pressed at ",i
            GPIO.output(i, GPIO.HIGH)
            break
try:
    while True:
        input_state=GPIO.input(Switch)
        runlight()

except KeyboardInterrupt:
    pass
GPIO.cleanup()

我是python新手,谢谢你的帮助。在


Tags: 脚本游戏列表forinputoutputledgpio