If statement 如何同时运行2个if语句

If statement 如何同时运行2个if语句,if-statement,while-loop,gpio,If Statement,While Loop,Gpio,我有这段代码,我有一个问题,当第一个if语句工作时,我不能运行第二个if语句,直到最后一个延迟完成,如果第二个if语句启动,我不能运行第一个语句,反之亦然 那么,解决这个问题的代码是什么呢?我尝试了def,但没有找到我需要的 import RPi.GPIO as GPIO import time import lcddriver GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) display=lcddriver.lcd() GPIO.cle

我有这段代码,我有一个问题,当第一个if语句工作时,我不能运行第二个if语句,直到最后一个延迟完成,如果第二个if语句启动,我不能运行第一个语句,反之亦然

那么,解决这个问题的代码是什么呢?我尝试了def,但没有找到我需要的

import RPi.GPIO as GPIO
import time 
import lcddriver


GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
display=lcddriver.lcd()
GPIO.cleanup()
# Configure Relay Output Pins
Relay1=31
Relay2=32

GPIO.setup(Relay1,GPIO.OUT)
GPIO.setup(Relay2,GPIO.OUT)


# Configure Relay Input Pins
IN1=29
IN2=15


GPIO.setup(IN1,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(IN2,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)



while (1):
    if  GPIO.input(IN1)==1:
        GPIO.output(Relay1,1)
        display.lcd_clear()
        display.lcd_display_string("   Input 1   ", 1)
        display.lcd_display_string("     Opened     ", 2)
        time.sleep(0.5)
        GPIO.output(Relay1,0)
        display.lcd_clear()
        time.sleep(1)
    if  GPIO.input(IN2)==1:
        GPIO.output(Relay2,1)
        display.lcd_clear()
        display.lcd_display_string("   Input 2   ", 1)
        display.lcd_display_string("     Opened     ", 2)
        time.sleep(0.5)
        GPIO.output(Relay2,0)
        time.sleep(1)
        display.lcd_clear()
GPIO.cleanup()

那是因为你不是在一个多进程程序中 仅使用CPU的一个线程 如果确实需要同时运行两条If语句,那么应该更改代码,以便需要运行的部分位于同一条If语句中

If condition1:
    Part1
If condition2:
    Part2
将成为

If condition3:
    Part1
    Part2
这是一个算法错误,你不应该在两个if(s)内分离你的块

我可以建议使用这样的函数

def do_part_two():
    Part2

def do_part_one():
    Part1

If condition1:
    Part1
    do_part_two()
If condition2:
    Part2
    do_part_one()
但我仍然鼓励你改变你的if,这样你就可以在我的第一个解决方案中

N.B: 您可以创建一个延迟函数,并在需要时调用它

def delay(x):
    time.sleep(x)

谢谢你的重播,你能帮我一个忙,用给出的代码为我写代码吗,我真的很感激。对不起,我不熟悉你使用的库,我只是给出了逻辑,你可以用它做任何事情,先生^^^不用担心,我可以通过使用mutliprocessing库来解决它。