2013-10-30 88 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