Циклы for и while
Что это и зачем
for перебирает элементы iterable; while повторяет блок, пока условие истинно. Цикл нужен для обработки последовательности или повторяемого процесса.
Как это работает
range(start, stop, step) исключает stop и не создаёт список всех чисел. break завершает ближайший цикл; continue переходит к следующей итерации. else у цикла выполняется при нормальном завершении без break.
for n in range(3):
print(n)
Когда применять
Для перебора индексов с элементами используйте enumerate. Для параллельного перебора — zip. while подходит, когда число повторений неизвестно; обеспечьте изменение состояния и условие завершения.
Границы применения
Не изменяйте размер списка во время его перебора. Не используйте бесконечный while без контролируемого выхода. Вложенные циклы могут увеличить стоимость до O(n²).
Ошибки и лучшие практики
range(5) содержит 0..4. continue пропускает оставшуюся часть тела. break не завершает внешние циклы автоматически. Пустой iterable выполняет ноль итераций.
Понятна идея? Теперь проверим её в действии.