Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

IndexError: list index out of range >>>

Bom dia, Fiz o exercicio, porem fica apresentando erro (IndexError: list index out of range), alguem poderia ajudar?


import RPi.GPIO as GPIO
import sys

def inicializaBoard():
    GPIO.setmode(GPIO.BOARD)
    GPIO.setwarnings(False)

def definePinoComoSaida(numeroPino):
    GPIO.setup(numeroPino, GPIO.OUT)

def escreveParaPorta(numeroPino, estadoPorta):
    GPIO.output(numeroPino, estadoPorta)

numeroPino = int(sys.argv[1])
estadoPorta = int(sys.argv[2])

inicializaBoard()
definePinoComoSaida(numeroPino)
escreveParaPorta(numeroPino, estadoPorta)



Python 3.7.3 (/usr/bin/python3)
>>> %Run automate2.py
Traceback (most recent call last):
  File "/home/pi/GPIO/automate2.py", line 14, in <module>
    numeroPino = int(sys.argv[1])
IndexError: list index out of range
>>>
1 resposta
solução!

Bom dia Claudemir, tudo certo?

Tente executar o programa chamando da seguinte forma:

python automate.py 7 0

Nessa chamada, o numeral 7 é passado para o seu programa como o sys.argv[1], pois é o argumento passado na posição 1 da chamada do programa. Já o 0 é passado como o sys.argv[2], ou seja, o argumento na posição 2 da chamada do programa. Você pode ler mais sobre na documentação do Python

Esse erro aconteceu pois você provavelmente não passou a porta e o valor que queria escrever nela ao chamar o programa. Ao tentar acessar o sys.argv[1] e essa lista não ter esse tamanho, é lançada a exceção IndexError: list index out of range.

Espero ter ajudado. Caso ainda tenha alguma dúvida é só responder esse tópico ou criar um tópico novo. Bons estudos!