Что произойдёт при выполнении it = iter([]) и затем next(it)?

AВернётся None.
BБудет выброшено исключение StopIteration.
CВернётся пустой список.
DБудет выброшено исключение IndexError.
Правильный ответ. Когда элементов больше нет, next() сигнализирует конец итерации через StopIteration.

Разбор

Итератор по пустому списку не содержит элементов. Первый же вызов next(it) не может вернуть значение и поднимает StopIteration. Именно это исключение использует цикл for, чтобы понять, что итерация завершилась.

Проверь себя · 1/3разбор после ответа
Есть it = iter([5]). Выполнили next(it), а затем next(it, -1). Что вернёт второй вызов next(it, -1)?
Тренировать Python в Telegram

Ещё вопросы по теме «Итераторы и генераторы»