Python 如何使用带循环的in和if语句

Python 如何使用带循环的in和if语句,python,micropython,Python,Micropython,我对变量和语句有点问题。 所以我在做一个项目,我必须使用不同的语句 材料: Pycom Lopy4+3.0扩展板,Flexiforce重量传感器,LoRa 这是我现在的代码: import pycom import machine import time ############### Weightsensor ############### def main(): adc = machine.ADC() # create an ADC object a

我对变量和语句有点问题。 所以我在做一个项目,我必须使用不同的语句

材料:

Pycom Lopy4+3.0扩展板,Flexiforce重量传感器,LoRa

这是我现在的代码:

import pycom
import machine
import time

############### Weightsensor ###############
def main():
    adc = machine.ADC()             # create an ADC object
    apin = adc.channel(pin='P16')   # create an analog pin on P16
    val = apin()                    # read an analog value

    if val < 50:
        print(val)
        print("Value to high")
        time.sleep(5)

if __name__ == "__main__":
    main()
导入pycom
进口机器
导入时间
###############重量传感器###############
def main():
adc=machine.adc()#创建一个adc对象
apin=adc.channel(引脚='P16')#在P16上创建一个模拟引脚
val=apin()#读取模拟值
如果val<50:
打印(val)
打印(“值高”)
时间。睡眠(5)
如果名称=“\uuuuu main\uuuuuuuu”:
main()
我想要实现什么

大概是这样的:

def main():
    while True:
        adc = machine.ADC()             # create an ADC object
        apin = adc.channel(pin='P16')   # create an analog pin on P16
        val = apin()                    # read an analog value

        if val < 20:
            print(val)
            print("Value to high")
            time.sleep(2.5)


if __name__ == "__main__":
    main()
def main():
尽管如此:
adc=machine.adc()#创建一个adc对象
apin=adc.channel(引脚='P16')#在P16上创建一个模拟引脚
val=apin()#读取模拟值
如果val<20:
打印(val)
打印(“值高”)
时间。睡眠(2.5)
如果名称=“\uuuuu main\uuuuuuuu”:
main()
但我不知道它是如何工作的,因为“val=apin()”是我的读数,我想用它作为变量。因此,如果值变大,它会这么说

工作代码:

def main():
    while True:
        adc = machine.ADC()             # create an ADC object
        apin = adc.channel(pin='P16')   # create an analog pin on P16
        val = apin()                    # read an analog value

        if val < 20:
            print(val)
            print("Weight is good")
            time.sleep(2.5)
        if val > 20:
            print(val)
            print("Weight is to high")
            time.sleep(2.5)



if __name__ == "__main__":
    main()
def main():
尽管如此:
adc=machine.adc()#创建一个adc对象
apin=adc.channel(引脚='P16')#在P16上创建一个模拟引脚
val=apin()#读取模拟值
如果val<20:
打印(val)
打印(“重量很好”)
时间。睡眠(2.5)
如果val>20:
打印(val)
打印(“重量过高”)
时间。睡眠(2.5)
如果名称=“\uuuuu main\uuuuuuuu”:
main()
提前谢谢你的帮助


亲切的问候

如果要比较
val
中的每个元素,则:

for x in val:
   if x > 50:
       print(val)
       print('Value too high')

如果要比较
val
中的每个元素,则:

for x in val:
   if x > 50:
       print(val)
       print('Value too high')

我想您需要一个
while
循环来重复调用
apin
,直到它返回的值小于50为止

def main():
    adc = machine.ADC()             # create an ADC object
    apin = adc.channel(pin='P16')   # create an analog pin on P16    
    while True:
        val = apin()
        if value > 50:
            break
        print(val)
        print("Value not high enough")
        time.sleep(5)

    print("Now value is high enough")

我想您需要一个
while
循环来重复调用
apin
,直到它返回的值小于50为止

def main():
    adc = machine.ADC()             # create an ADC object
    apin = adc.channel(pin='P16')   # create an analog pin on P16    
    while True:
        val = apin()
        if value > 50:
            break
        print(val)
        print("Value not high enough")
        time.sleep(5)

    print("Now value is high enough")

我想要实现什么?
是的,我们也想知道这一点。您需要给出一些示例,说明
apin()
可能会返回什么,以及您希望程序做什么来响应。不清楚您希望循环什么。如果
apin
返回一个整数,则不能对其进行迭代。在第二个示例中,您试图将字符串
“50”
与整数
20
进行比较,这是不允许的。是否要重复调用apin,直到其值小于50?不清楚。
apin()
返回什么?是否要使用循环?循环在什么条件下停止?您可以执行
value=“50”
,如果value<20,则在下一行
。这永远不会是真的。那将是一个打字错误。对不起,我发现了我的循环错误。。一开始我忘了“while True”。我现在将在消息中更新它。但是谢谢你反应这么快<代码>我想要实现什么?
是的,我们也想知道这一点。您需要给出一些示例,说明
apin()
可能会返回什么,以及您希望程序做什么来响应。不清楚您希望循环什么。如果
apin
返回一个整数,则不能对其进行迭代。在第二个示例中,您试图将字符串
“50”
与整数
20
进行比较,这是不允许的。是否要重复调用apin,直到其值小于50?不清楚。
apin()
返回什么?是否要使用循环?循环在什么条件下停止?您可以执行
value=“50”
,如果value<20,则在下一行
。这永远不会是真的。那将是一个打字错误。对不起,我发现了我的循环错误。。一开始我忘了“while True”。我现在将在消息中更新它。但是谢谢你反应这么快!实际上,如果apin()返回单个值,那么您建议的周期性度量是最好的方法。我认为APIN()类似于一个PIN数组,通过ItTATE,但是相信你的逻辑会做更多的Souple夫妇的轻微修改,删除了while循环外的<代码> Val= APIN()/COD>,因为这意味着第一个值根本不被使用,并且重命名<代码>值< /代码>变量到<代码> Val< /代码>谢谢。这是一个很好的例子!它对我的项目有效!我将不得不删除break函数,因为它是用于健康项目的,他们现在需要每5秒修改一次值。但现在我学会了一个新的功能,所以谢谢@格里斯:当然,我忘了做那件事。事实上,如果apin()返回一个值,那么您建议的周期性度量是最好的方法。我认为APIN()类似于一个PIN数组,通过ItTATE,但是相信你的逻辑会做更多的Souple夫妇的轻微修改,删除了while循环外的<代码> Val= APIN()/COD>,因为这意味着第一个值根本不被使用,并且重命名<代码>值< /代码>变量到<代码> Val< /代码>谢谢。这是一个很好的例子!它对我的项目有效!我将不得不删除break函数,因为它是用于健康项目的,他们现在需要每5秒修改一次值。但现在我学会了一个新的功能,所以谢谢@格里斯:当然,我忘了做那件事。我会修好的。