Как исправить бесконечный цикл в Python - PullRequest
0 голосов
/ 28 марта 2019

Я только начал с Python и RPi. Но я застрял: D У меня есть 4 микропереключателя и несколько возможностей (BC1, BC2, BC3 ... и т. Д.). Например, если мы выбираем возможность BC1, то микропереключатель 1 (btn1) и 2 (btn2) должен быть активным, если этот случай равен true, тогда ledG1 и vazduh активны. Также мне нужно иметь posibiliti для вставки другого posibiliti (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 Ответ

2 голосов
/ 28 марта 2019

Я думаю, что вы, вероятно, хотели использовать if вместо while в своей первой области видимости.

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