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
4

1 回答 1

0

您忘记将 map 分配给变量,或者在这种情况下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!"

希望这可以帮助!

于 2013-10-30T09:33:58.920 回答