Встречается на собеседованиях • сегодня

Почему не срабатывает StopIteration при использовании for в Python

Цикл for в Python автоматически обрабатывает исключение StopIteration, поэтому оно не "прокидывается" наружу. Это часть протокола итерации: когда итератор исчерпан, он вызывает StopIteration, а цикл for ловит это исключение и завершает выполнение.

Пример:

python
my_list = [1, 2, 3]
iterator = iter(my_list)
for item in iterator:
    print(item)  # 1, 2, 3 - цикл завершится без ошибок

Если же вызывать next() вручную, то StopIteration будет выброшено:

python
iterator = iter([1])
next(iterator)  # 1
next(iterator)  # Вызовет StopIteration

Это поведение сделано для удобства - чтобы не приходилось явно обрабатывать завершение итерации в циклах.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы