Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我如何安排条件,使它们同时工作?_Python_Syntax_Raspberry Pi3 - Fatal编程技术网

Python 我如何安排条件,使它们同时工作?

Python 我如何安排条件,使它们同时工作?,python,syntax,raspberry-pi3,Python,Syntax,Raspberry Pi3,我是Python新手,还是个学生。我正在努力使我的条件同时发挥作用。现在我写的方式是,如果第一个条件为真,它就不关心第二个条件。我希望这两个条件都得到同等的重视 这是一个自我浇水的项目,走出去的一面。我有两个区域,需要同等重视。我已经绑定了if/else语句和while条件语句。我知道一定有办法做到这一点。以下是我迄今为止尝试过的两个版本。我知道第一个版本中的or不好。有人能给我指出正确的方向吗 if soil0 <10 and rc_time(phoSEN) > 4000:

我是Python新手,还是个学生。我正在努力使我的条件同时发挥作用。现在我写的方式是,如果第一个条件为真,它就不关心第二个条件。我希望这两个条件都得到同等的重视

这是一个自我浇水的项目,走出去的一面。我有两个区域,需要同等重视。我已经绑定了if/else语句和while条件语句。我知道一定有办法做到这一点。以下是我迄今为止尝试过的两个版本。我知道第一个版本中的or不好。有人能给我指出正确的方向吗

 if soil0 <10 and rc_time(phoSEN) > 4000:
    GPIO.output(relay1, GPIO.LOW)
    GPIO.output(relay2, GPIO.LOW)
    sleep(.1)
 or if soil1 <10 and rc_time(phoSEN) > 4000:
    GPIO.output(relay3, GPIO.LOW)
    GPIO.output(relay4, GPIO.LOW)
 else:
    GPIO.output(relay1, GPIO.HIGH)
    GPIO.output(relay2, GPIO.HIGH)
    GPIO.output(relay3, GPIO.HIGH)
    GPIO.output(relay4, GPIO.HIGH)
    sleep(.1)


while soil0 <10 and rc_time(phoSEN) > 4000:
    GPIO.output(relay1, GPIO.LOW)
    GPIO.output(relay2, GPIO.LOW)
    sleep(.1) 
while soil1 <10 and rc_time(phoSEN) > 4000:
    GPIO.output(relay3, GPIO.LOW)
    GPIO.output(relay4, GPIO.LOW)
else:
    GPIO.output(relay1, GPIO.HIGH)
    GPIO.output(relay2, GPIO.HIGH)
    GPIO.output(relay3, GPIO.HIGH)
    GPIO.output(relay4, GPIO.HIGH)
    sleep(.1)
如果soil0 4000:
GPIO.output(继电器1,GPIO.LOW)
GPIO.output(relay2,GPIO.LOW)
睡眠(.1)
或者如果soil1 4000:
GPIO.output(继电器3,GPIO.LOW)
GPIO.输出(继电器4,GPIO.低)
其他:
GPIO.输出(继电器1,GPIO.高)
GPIO.output(relay2,GPIO.HIGH)
GPIO.输出(relay3,GPIO.高)
GPIO.输出(继电器4,GPIO.高)
睡眠(.1)
而soil0 4000:
GPIO.output(继电器1,GPIO.LOW)
GPIO.output(relay2,GPIO.LOW)
睡眠(.1)
而soil1 4000:
GPIO.output(继电器3,GPIO.LOW)
GPIO.输出(继电器4,GPIO.低)
其他:
GPIO.输出(继电器1,GPIO.高)
GPIO.output(relay2,GPIO.HIGH)
GPIO.输出(relay3,GPIO.高)
GPIO.输出(继电器4,GPIO.高)
睡眠(.1)

有几种方法可以安排您的条件。我有时使用的一种方法是将条件的结果分配给变量,然后在
if
语句中使用这些变量

condition_1 = soil0 <10 and rc_time(phoSEN) > 4000
condition_2 = soil1 <10 and rc_time(phoSEN) > 4000

if condition_1:
    ...
if condition_2:
    ...
if not (condition_1 or condition_2):
    ...
条件_1=soil0 4000
条件2=soil1 4000
如果条件_1:
...
如果条件_2:
...
如果不是(条件_1或条件_2):
...

您似乎错过了第二种情况的
睡眠(.1)
部分,它可能导致了意外行为,relay3和relay4可能只低了一小段时间,没有睡眠陈述,似乎被忽略了


另外,我不知道
或者如果
是有效的语法,我已经用
elif
替换了它,因为我相信这就是你在这里的意思。用散文表达你希望发生的事情。从代码上看还不完全清楚。如果soil0`或者如果'你是说如果其他的话',你希望发生什么?