ランタイム上でPythonの配列に値を追加するには?

カシーフIftikhar:

私はArduinoのボードのデジタルピンを読み込んでプログラムを持っています。取締役会は、デジタルピンがPULLUP(キーワード)がある場合に出力を返しますPULLDOWN(キーワード)デジタル端子がOFFであることを意味している場合、デジタル端子が「B'1' 」と「B'0' 」としてONであることを意味します。出力がB'0' の場合は私は出力がB'1' であれば、配列と1に0を追加していと最後にそれらを印刷。しかし、それはエラーが発生します。コードは以下の通りです:

from serial import Serial
import time

arduinodata = Serial("COM4",9600)
a=1
i=0
current=0
data=[]
while (a<9):
    binary = arduinodata.read()
    if(binary==b'1'):
        data[i].append(1)
        i=i+1
        a=a+1
    if(binary==b'0'):
        data[i].append(0)
        current=i
        i=i+1
        a=a+1

for b in data:
    print(data[b])

エラー:

Traceback (most recent call last):    
    File "GettingBitStatus.py", line 12, in <module>       
 data[i].append(1)    
IndexError: list index out of range
カシーフIftikhar:

問題は、これらの行にあります。

data[i].append(1)
data[i].append(0)

以下は、これらの行を書き込むための正しい方法は次のとおりです。

data.append(1)
data.append(0)

エラーなしで最終的なコード:

from serial import Serial
import time

arduinodata = Serial("COM4",9600)
a=1
i=0
current=0
data=[]
while (a<9):
    binary = arduinodata.read()
    if(binary==b'1'):
        data.append(1)
        a=a+1
    if(binary==b'0'):
        data.append(0)
        current=i
        a=a+1

for b in data:
    print(b)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=13530&siteId=1