Есть 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.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

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