我打算通过串口从arduino中检索字符串。如何将字符串映射到整数/浮点数?这是我使用Python的当前代码。我想要实现的是能够将第一个值读作数字。
import serial
ser = serial.Serial('COM7', 9600)
try:
result=ser.readline()
pieces=result.split(" \t")
map(float, pieces)
print pieces
if pieces[0] == 5.0:
print "Yes"
else:
print "No"
except:
print "Failed to get data from Arduino!"
结果:
[5.0, 23.2, 88.17]
['5', '23.20', '88.17\r\n']
No
答案 0 :(得分:0)
您忘了将地图分配给变量,或者在这种情况下pieces
:
pieces = map(float, pieces) #assign the floated list to the variable 'pieces'
除了使用map之外,还有另一种选择:)
嗯,这是另一种选择:
#List comprehension:
pieces = [float(i) for i in pieces]
看起来一样好,对吧?
简而言之,这就是您的代码应该是这样的:
import serial
ser = serial.Serial('COM7', 9600)
try:
result=ser.readline()
pieces=result.split(" \t")
pieces = map(float, pieces)
print pieces
if pieces[0] == 5.0:
print "Yes"
else:
print "No"
except:
print "Failed to get data from Arduino!"
希望这有帮助!