Перебор коллекций, счётчики и досрочный выход из цикла.
for: цикл по коллекции
prices = [349, 99, 199]total = 0for price in prices: total += priceprint(total) # 647
for перебирает элементы напрямую — индексы для этого не нужны. Не меняй список, по которому идёшь: удаление элементов внутри цикла пропускает соседние.
for и range: цикл по числам
for i in range(3): print(i) # 0, 1, 2for i in range(2, 10, 2): print(i) # 2, 4, 6, 8
range(stop) считает от нуля, правая граница не входит. Полная форма range(start, stop, step) задаёт начало и шаг.
while крутится, пока условие истинно — бери его, когда число шагов заранее неизвестно. Что-то внутри обязано менять условие, иначе цикл вечный.
break и continue
for price in [99, 199, -5, 349]: if price < 0: break # stop the whole loop if price > 150: continue # skip to the next item print(price) # 99
break выходит из цикла целиком, continue пропускает только текущую итерацию. Во вложенных циклах break прерывает лишь внутренний.
enumerate: индекс + элемент
steps = ['clone', 'install', 'run']for i, step in enumerate(steps, start=1): print(i, step)# 1 clone# 2 install# 3 run
enumerate отдаёт пару «номер, элемент» — это питоничнее, чем range(len(items)). start задаёт, с какого числа нумеровать.
Вложенные циклы
for row in range(1, 3): for col in range(1, 4): print(row * col, end=' ') print()# 1 2 3# 2 4 6
Внутренний цикл прокручивается целиком на каждом шаге внешнего — итераций получается rows × cols. Больше двух уровней — сигнал вынести внутренний цикл в функцию.
Мы используем cookies. Используем файлы cookie, включая Яндекс.Метрику, для работы сайта, аналитики и улучшения сервиса. Продолжая пользоваться сайтом, ты соглашаешься с нашей политикой конфиденциальности и политикой использования cookies.