Есть it = iter(['a', 'b']). Что вернёт самый первый вызов next(it) сразу после создания итератора?

AПервый элемент 'a'
BВторой элемент 'b'
CПустое значение None
DИсключение StopIteration
Правильный ответ. Свежесозданный итератор всегда стартует с первого элемента последовательности, и первый next() возвращает именно его.

Разбор

iter(['a', 'b']) создаёт итератор, указатель которого стоит перед началом. Первый вызов next(it) продвигает указатель и возвращает 'a'. Второй вызов даст 'b', а третий — поднимет StopIteration, так как элементов больше нет. next без значения по умолчанию никогда не возвращает None сам по себе: либо отдаёт следующий элемент, либо бросает StopIteration.

Проверь себя · 1/3разбор после ответа
Что создаёт выражение squares = (x * x for x in xs)?
Тренировать Python в Telegram

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