给出一个数字后从循环中断

时间:2017-11-16 23:59:59

标签: python raspberry-pi

我遇到问题让我的“中断循环”工作,它不会抛出任何错误,所以我甚至看不到发生了什么。当我告诉脚本开始闪烁我的LED时,它是选项3。最初我正在研究一些方法,如果有一种方法来运行你的循环并在循环仍在运行时返回你的MainMenu,但那不是选项,所以我想尝试类似于使用“for number in范围(10):“

def loop():
    while True:
        os.system('clear')
        print
        print ('1. ON')
        print ('2. OFF')
        print ('3. Blink')
        print
        choice = int(raw_input('1-[ON], 2-[OFF]: '))
        if choice == 1:
            print
            print ('Turning ON')
            GPIO.output(LedPin, GPIO.LOW)  # Led ON
        elif choice == 2:
            print
            print ('Turning OFF')
            GPIO.output(LedPin, GPIO.HIGH)  # Led OFF
        elif choice == 3:
            number = 0
            for number in range(10):
               number = number + 1
               if number == 5:
                  break
                  GPIO.output(LedPin, GPIO.LOW + str(number))  # Led ON
                  time.sleep(0.05)
                  GPIO.output(LedPin, GPIO.HIGH + str(number))  # Led OFF
                  time.sleep(0.05)
               #print ('Number is ' + str(number))

这个例子很好用:

    number = 0

for number in range(10):
   number = number + 1

   if number == 5:
      break    # break here

   print('Number is ' + str(number))

print('Out of loop')

输出:

Number is 1
Number is 2
Number is 3
Number is 4
Out of loop

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你想要在数字== 5

时切换灯光
        elif choice == 3:
           for number in range(0,5):
              GPIO.output(LedPin, GPIO.LOW + str(number))  # Led ON
                 time.sleep(0.05)
                 GPIO.output(LedPin, GPIO.HIGH + str(number))  # Led OFF
                 time.sleep(0.05)
           #print ('Number is ' + str(number)) #will be 4, went 5 times

答案 1 :(得分:-2)

我不知道这是否会有所帮助,但可能会尝试使用quit或while循环来代替:

当数字== 5时:
退出(这将使你的程序停止)

但是,即使你使用break,在它之后编写代码也没有意义,所以可能会注释掉它后面的代码,看它是否有效。