How to add values in Python Array on Run-time?

Kashif Iftikhar :

I have a program that reads the digital pins of Arduino Board. The Board returns output if Digital Pin is PULLUP(Keyword) means Digital Pin is ON as "b'1'" and "b'0'" if PULLDOWN(Keyword) means Digital Pin is OFF. If output is b'0' i am adding 0 in the array and 1 if output is b'1' and Finally print them. But it gives error. Code is below:

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])

Error:

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

The issue is in these lines:

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

Below is the right way to write these lines:

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

Final Code without error:

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)

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=11797&siteId=1