如何在python中修复无限循环

时间:2019-03-28 11:48:14

标签: python loops raspberry-pi3 infinite

我刚开始使用python和RPi。但我坚持:D 我有4个微动开关,几乎没有功能(BC1,BC2,BC3等)。例如,如果我们选择可能性BC1,那么微动开关1(btn1)和2(btn2)必须处于活动状态,如果是,则ledG1和vazduh处于活动状态。另外,我还需要一个位置来插入另一个位置(BC1,BC2,BC3),直到我们首先插入另一个位置才必须处于活动状态(如果请求的开关处于活动状态)。

使用此代码可以正常工作,但只要求我插入一次可能性。

BC1 = '1'
BC2 = '2'
BC3 = '3'
BC4 = '4'
BC5 = '5'

def compare ():
    while True:
        Barcode = input("Insert barcode: ")
        while Barcode == BC1:
            if GPIO.input(btn1)==0 and GPIO.input(btn2)==0:
                GPIO.output(vazduh, GPIO.HIGH)
                GPIO.output(ledG1, GPIO.HIGH)
                continue
            else:
                GPIO.output(vazduh, GPIO.LOW)
                GPIO.output(ledG1, GPIO.LOW)
                continue                
        while Barcode == BC2:
            if GPIO.input(btn2)==0 and GPIO.input(btn4)==0:
                GPIO.output(vazduh, GPIO.HIGH)
                GPIO.output(ledG3, GPIO.HIGH)
                continue
            else:
                GPIO.output(vazduh, GPIO.LOW)
                GPIO.output(ledG3, GPIO.LOW)
                continue


compare ()

1 个答案:

答案 0 :(得分:2)

我认为您可能希望在第一时间范围内使用if而不是while

while True:
   Barcode = input("Insert barcode: ")
   if Barcode == BC1:
      #Do something #1
   if Barcode == BC2:
      #Do something #2