繁体   English   中英

Python和串行数据索引和切片

[英]Python and serial data indexing and slicing

这里的提示是比较数组中的数据,从串行端口索引的数据并以字符串形式存储(我对此表示怀疑)。我的目的是比较特定索引中存储在数组中的数据。 查看条件,您会得到一个更好的主意。 结果仅执行最后的else语句,而忽略其他条件。 请问是什么原因? 我也尝试从整数中取出“”。

我是python的新手,因此不确定该方法是否正确。

while True:
            line = ser.readline().strip('\n').strip('\r')  
            print "Received: '{}'".format(line)
            datal = line.split(':')
            for i in range(len(datal)):
              print "data[{}]".format(i), datal[i]
              if (datal[1:2] > 27 and datal[0] > 28):
                    x = "Sound above moderate level"
                    y = "temp is too high"
             elif(datal[1:2] > 27 and datal[0]< 27):
                    x = "Sound moderate"
                    y = "Temperature is too high."
             elif(datal[0:1] < 27 and datal[0] > 27):
                    x = "Sound above moderate level"
                    y = "Temperature is moderate"
            else:
                    x = "Ambient sound"
                    y = "Ambient temperature"


            return datal

使用map功能

while True:
    line = ser.readline().strip('\n').strip('\r')  
    print "Received: '{}'".format(line)
    datal = list(map(int,line.split(':')))
    for i in range(len(datal)):
        print "data[{}]".format(i), datal[i]
        if datal[1] > 27 and datal[0] > 28:
            x = "Sound above moderate level"
            y = "temp is too high"
        elif datal[1] > 27 and datal[0]< 27 :
            x = "Sound moderate"
            y = "Temperature is too high."
        elif datal[0] < 27 and datal[0] > 27:
            x = "Sound above moderate level"
            y = "Temperature is moderate"
        else:
            x = "Ambient sound"
            y = "Ambient temperature"

    return datal

data[0:1] selects 0th element == data[0]
data[1:2] selects 1st element == data[1]
data[2:3] selects 2nd element == data[2]

您正在将字符串与整数进行比较,因此仅执行else语句。 将字符串转换为整数。

如果要比较多个值,请使用data[0] > 27 and data[1] > 27 and data[2] < 28

如果您使用的是Linux,则可以使用python3 filename.py编译代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM