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