По порядку Middle Итераторы и генераторы обновлено

Что делает цикл for по шагам

Вопрос

Расставьте шаги выполнения for x in obj: body по порядку.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Присвоить полученное значение переменной x
  2. 2
    Поймать StopIteration и выйти из цикла
  3. 3
    Вызвать iter(obj) и получить итератор
  4. 4
    Выполнить тело цикла и снова вызвать next()
  5. 5
    Вызвать next() у итератора
Показать ответ и разбор

Коротко

Итератор создаётся один раз в начале, затем next() повторяется, пока не будет StopIteration. Исключение цикл поглощает сам, и после него выполняется ветка else у for, если она есть.

Правильный порядок

  1. 1
    Вызвать iter(obj) и получить итератор
  2. 2
    Вызвать next() у итератора
  3. 3
    Присвоить полученное значение переменной x
  4. 4
    Выполнить тело цикла и снова вызвать next()
  5. 5
    Поймать StopIteration и выйти из цикла

Разбор

Итератор создаётся один раз в начале, затем next() повторяется, пока не будет StopIteration. Исключение цикл поглощает сам, и после него выполняется ветка else у for, если она есть.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме