как исправить: "индексы списка должны быть целыми или кусочками, а не str" - PullRequest
0 голосов
/ 19 сентября 2019

Я новичок в Python, все еще изучаю его и пытаюсь создать скрипт, который рассылает электронные письма на несколько писем, но у меня возникли проблемы с ним.он продолжает выводить сообщение об ошибке в строке 9:

"индексы списка должны быть целыми или кусочками, а не str"

, и я не совсем понимаю, что это значит и что мне нужно сделать, чтобы исправитьчто.

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

email_list = ["First@email.com", "second@email.com", "third@email.com", "etc..."]

num = 0
for i in email_list:
    msg['To'] = email_list[i] #this line gives the error
    num = num + 1
    server.sendmail(email, email_list[i], text)

print("Emails Sent: " + num)

Я ожидаю, что результат будет, E-mail отправлено: 3, но это не так

1 Ответ

1 голос
/ 19 сентября 2019

В python for e in collections должен читаться как «для каждого элемента e коллекции», что означает, что e принимает значение каждого элемента в коллекции.

В вашем примере iпримет значения «First@email.com», затем «second@email.com» и т. д., а не 0, 1 ... как вы, кажется, верите.Однако, когда вы делаете email_list[i], вы пытаетесь получить i-ую ценность вашего списка.Что не может работать, так как мы увидели, что i это строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...