2013-10-30 46 views
0

我打算通过串口从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

你忘了分配映射到一个变量,或在这种情况下pieces

pieces = map(float, pieces) #assign the floated list to the variable 'pieces' 

除了使用地图,还有另一种选择太:)

那么,这里是一个替代方案:

#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!" 

希望这有助于!

+0

是!代码工作正常!谢谢! – user2935653

+0

非常欢迎您! – aIKid