如果int(lista[2])==0:indexer错误:列表索引超出范围

2024-10-04 11:26:35 发布

您现在位置:Python中文网/ 问答频道 /正文

import serial
import time
import smtplib
from email.mime.text import MIMEText

#nombre del dispositivo serial : dmesg | grep -v disconnect | grep -Eo "tty(ACM|USB)." | tail -1
ser = serial.Serial('/dev/ttyACM0',9600)
ser.flushInput()


def iluminacion (lista):
    #movimiento del robot
    dato = '5'
    #envio de las cordenadas gmail
    if int(lista[2]) == 0:
       
        correo_origen = '**********'
        contraseña = '******'
        correo_destino = '*********'
       
        a = "https://www.google.com/maps?q="
        b = lista[3]
        texto = a  + str(b)
       
        msg = MIMEText(texto)
        msg['Subject'] = 'COORDENADAS DE LA PERSONA '
        msg['From'] = correo_origen
        msg['To'] = correo_destino

        server = smtplib.SMTP('smtp.gmail.com',587)
        server.starttls()
        server.login(correo_origen,contraseña)
        server.sendmail(correo_origen,correo_destino,msg.as_string())

        print(texto)

        server.quit()
       
       
    return dato
    return lista

while True:

    try:

        lineBytes = ser.readline()
        line  = lineBytes.decode('latin-1').strip()
        lista = line.split(',')
        print(lista)

        mensaje = iluminacion(lista).encode('latin-1')
        ser.write(mensaje)
        time.sleep(0.5)

    except KeyboardInterrupt:
        break

Tags: importservertimeserialmsggrepsersmtplib
1条回答
网友
1楼 · 发布于 2024-10-04 11:26:35

lista数组的大小小于3

您正在尝试访问不存在的数组(或列表)的位置

数组的索引从0开始,在大小为1时结束

例如,如果arr[]数组的大小为5,则可访问位置为0到4。如果您试图访问位置5或大于5,则会出现索引错误

相关问题 更多 >