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 に答える