Как работает цикл for под капотом
Цикл for в Python устроен иначе, чем во многих языках: он перебирает элементы, а не считает по счётчику. Разберёмся.
for перебирает элементы
В Python for берёт последовательность (список, строку, диапазон) и по очереди достаёт из неё элементы, подставляя каждый в переменную цикла. Не «сделай 5 раз со счётчиком», а «пройди по каждому элементу».
for letter in 'код':
print(letter) # к, о, д — по одной букве
range — это тоже последовательность
Когда пишут for i in range(5), range(5) даёт последовательность чисел 0,1,2,3,4, и for перебирает их. То есть привычный «счётчик» — частный случай перебора чисел, а не отдельная конструкция.
Почему это удобно
Раз for перебирает элементы напрямую, не нужно возиться с индексами и длиной — код короче и меньше ошибок. Эта же идея «пройти по каждому» лежит в основе задач вроде обхода поля дроном в игровых тренажёрах.
Частые вопросы
Как получить и номер, и элемент? Через enumerate — он даёт индекс и значение сразу.
Можно ли перебирать словарь? Да, for пройдёт по его ключам.
Начать игру бесплатно