Цикл for
В Python for итерируется по элементам последовательности или любого итерируемого объекта.
nums = [1, 2, 3]
for n in nums:
print(n)
Конструкция for n in nums берёт по очереди каждый элемент из nums и кладёт в переменную n, после чего выполняет тело цикла.
Часто используют с range(), чтобы повторить действие фиксированное количество раз:
for i in range(5):
print(i) # 0, 1, 2, 3, 4
Цикл while
while выполняет блок кода, пока условие остаётся истинным.
count = 0
while count < 3:
print(count)
count += 1
Здесь цикл завершится, когда count станет равен 3. Важно не забывать изменять переменные в условии, иначе можно получить бесконечный цикл.
Разница в использовании
for удобен, когда ты итерируешься по уже известной коллекции или диапазону: списки, строки, range, результат enumerate и т.д.
while удобен, когда заранее неизвестно количество повторов, и нужно «крутиться, пока условие истинно» — например, читать данные, пока они приходят, или ждать определённого состояния.
Как кратко ответить на собеседовании
В Python for перебирает элементы итерируемого объекта (for item in iterable) и выполняет блок для каждого элемента. while выполняет блок, пока условие истинно (while condition). Обычно for используют, когда есть последовательность или известное число итераций, а while — когда количество повторов заранее неизвестно и зависит от условия.