如何在不中断程序的情况下通过用户输入停止 while 循环?

How to stop a while loop with a user input without interrupting the program?

如何无限循环 5 个 LED 灯,让它们一个接一个地亮起,直到用户输入某些内容?我不希望用户输入中断循环。现在一切正常,除了在循环中间输入中断程序。

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)

print("Press h to exit the program")

while True:

    GPIO.setup(19,GPIO.OUT)
    GPIO.output(19,True)
    time.sleep(0.5)
    GPIO.output(19,False)

    GPIO.setup(26,GPIO.OUT)
    GPIO.output(26,True)
    time.sleep(0.5)
    GPIO.output(26,False)

    GPIO.setup(22,GPIO.OUT)
    GPIO.output(22,True)
    time.sleep(0.5)
    GPIO.output(22,False)

    GPIO.setup(27,GPIO.OUT)
    GPIO.output(27,True)
    time.sleep(0.5)
    GPIO.output(27,False)

    GPIO.setup(17,GPIO.OUT)
    GPIO.output(17,True)
    time.sleep(0.5)
    GPIO.output(17,False)

    x = input("")

    if (x == "h"):
        print("Exiting the program")
        break

    GPIO.setwarnings(False)

GPIO.cleanup()

您可以使用第三方 keyboard 库轻松完成此操作。

import keyboard

while True:
    print(1)
    print(2)
    print(3)
    print(4)
    if keyboard.is_pressed("h"):
       break