[英]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.