0

这是当前代码:

def wait_for_button(button):
    while not (button.read()) :
        pass
wait_for_button(push_button1)
print('Hi')
wait_for_button(push_button2)
print('Bye')

但是这段代码的问题是push_button1必须先按下,然后才能按下按钮 2。如果在按钮 2 之前没有按下按钮 1,则不会打印出“Bye”(参考上面的代码)。

有没有一种方法可以代替按顺序进行(pushputton1->pushbutton2),它可以以任何一种方式进行,即无论先按下哪个按钮,代码仍然可以工作?谢谢

4

2 回答 2

1

如果我正确理解了这个问题,您想在按下按钮 2 时退出(无论是否按下按钮 1)。您可以为这种情况创建以下函数:

def wait_for_buttons(button1, button2):
    button1_pressed = False
    button2_pressed = False

    while not button2_pressed:
        if button1.read():
            button1_pressed = True
            print("Hi")
        if button2.read():
            button2_pressed = True

wait_for_buttons(push_button1, push_button2)
print('Bye')
于 2020-08-05T13:51:11.917 回答
0

如果我理解正确并且您想检查是否按下了两个按钮,然后才打印“再见”。您可以为按钮 1 和 2 创建 2 个布尔变量,然后如果两个变量都设置为 true,则打印。像这样的东西:

def wait_for_button(button1,button2):
    button_pressed1=False
    button_pressed2=False

    print ("Hi")
    while not button_pressed1 and not button_pressed2:
        if button1.read():
            button_pressed1=True
        if button2.read():
            button_pressed2=True
    print ("Bye")

这样,首先按下哪个按钮都没有关系,一旦以任何顺序按下两个按钮,while循环就会结束并且函数打印“Bye”。

于 2020-08-05T15:38:57.500 回答