Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将串行端口数据映射为整数_Python_Dictionary_Serial Port - Fatal编程技术网

Python 将串行端口数据映射为整数

Python 将串行端口数据映射为整数,python,dictionary,serial-port,Python,Dictionary,Serial Port,我打算通过串口从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:

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

您忘记将map分配给变量,或者在本例中是
片段

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!"
希望这有帮助