Глава 10 · Немного автоматизации!
Условия if внутри циклов for
Циклы и условия отлично работают вместе — а циклы можно вкладывать друг в друга.
Условия if внутри циклов for
if из главы 9 прекрасно работает внутри цикла — на каждом
шаге можно принимать своё решение:
if_v_cikle.py
for number in range(1, 11):
if number % 2 == 0:
print(number, "— чётное")
Вложенные циклы for
Цикл можно поместить внутрь другого цикла — тогда внутренний цикл выполняется полностью на каждом шаге внешнего. Представьте сетку: внешний цикл идёт по строкам, внутренний — по столбцам каждой строки:
vlozhennye_cikly.py
for row in range(3):
for col in range(4):
print(f"({row}, {col})", end=" ")
print() # новая строка после каждого ряда
Сколько раз выполнится внутренний цикл?
| row | col | print(...) сработал раз № |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 2 |
| 0 | 2 | 3 |
| 0 | 3 | 4 |
| 1 | 0 | 5 |
| … | … | … |
| 2 | 3 | 12 |
Вложенные циклы — частая причина неожиданной медлительности
Внешний цикл выполняется 3 раза, внутренний — 4 раза на каждом шаге внешнего — итого
print(...) внутри сработает 3 * 4 = 12 раз. Если оба цикла идут не до 3-4, а до тысяч, итоговое число итераций перемножается — и программа может выполняться заметно дольше, чем кажется на первый взгляд.Мини-проект: таблица умножения
Классическая задача на вложенные циклы — напечатать таблицу умножения от 1 до 5:
tablica_umnozheniya.py
for a in range(1, 6):
for b in range(1, 6):
print(a * b, end="\t")
print()
Один или два примера — этого достаточно
Специально не будем множить примеры узоров на вложенных циклах — таблица умножения (и сетка выше) дают достаточно интуиции, чтобы читать и писать любые похожие конструкции самостоятельно.
Цикл + строка + условие
Вложенность работает и там, где внутренний «цикл» — это перебор символов строки внутри внешнего перебора списка слов:
cikl_stroka_uslovie.py
slova = ["python", "код", "цикл"]
for slovo in slova:
bukvy_o = 0
for letter in slovo:
if letter == "о":
bukvy_o += 1
print(slovo, "—", bukvy_o)
Практика: условия и вложенные циклы
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Практика: мини-проект «Таблица умножения»
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Практика: сколько итераций во вложенном цикле?
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки