Карта курса → Модуль 1 → Урок 1.4

Циклы — строим стену за 3 секунды

Зачем писать одно и то же 100 раз, если можно один раз и повторить?

Урок 1.4 — Циклы

🎣 Старт

Помнишь, как ты писал вперёд() пять раз подряд в первом уроке? Представь, что нужно построить стену из 100 блоков. Писать вперёд() сто раз?

Нет. Для этого есть циклы.

Цикл — это команда «повтори». Одна строка вместо ста. Программисты ленивы — и это их суперсила.

🧠 Теория: Цикл for

for i in range(n) — повтори n раз

Самый частый цикл в Python. Говоришь «сколько раз повторить» — и он повторяет.

for i in range(10):
    поставь_блок()
    вперёд()

Minecraft-аналогия: поставь 10 блоков в ряд. Без цикла — 20 строк. С циклом — 3.

range() — генератор чисел

range(5) даёт числа: 0, 1, 2, 3, 4

⚠️ Начинается с нуля! И заканчивается до указанного числа. range(5) — это 5 чисел, но последнее — 4, не 5.

Переменная цикла i

i — это счётчик. На каждом шаге цикла он увеличивается. Как номер блока, который ты ставишь.

for i in range(5):
    print(i)    # выведет: 0, 1, 2, 3, 4

Вложенные циклы — стена!

Стена = строки × столбцы. Цикл внутри цикла:

for строка in range(5):       # 5 строк
    for блок in range(10):   # 10 блоков в каждой
        поставь_блок()
        вперёд()

Итого: 5 × 10 = 50 блоков. Две строки кода вместо пятидесяти.

🧩 Квиз +10 XP
Сколько раз выполнится for i in range(3)?
A 2
B 3
C 4
D 0
🧩 Квиз +10 XP
Что выведет этот код?
for i in range(4):
    print(i)
A 0 1 2 3
B 1 2 3 4
C 0 1 2 3 4
D 4

🔧 Практика: Строим циклами

Задача 1: Построй линию из 7 блоков.

for i in range():
    поставь_блок()
    ()
💡 Подсказка

Нужно 7 блоков — значит range(???). После каждого блока черепашка делает шаг вперёд.

✅ Решение
for i in range(7):
    поставь_блок()
    вперёд()

Задача 2: Построй стену 4 высоты × 6 ширины (вложенный цикл).

for строка in range():
    for блок in range():
        поставь_блок()
        вперёд()
    # переход на следующий ряд
💡 Подсказка

Высота = количество строк (внешний цикл). Ширина = количество блоков в каждой строке (внутренний цикл).

✅ Решение
for строка in range(4):
    for блок in range(6):
        поставь_блок()
        вперёд()
    # переход на следующий ряд
🧩 Квиз +10 XP
Сколько блоков поставит этот код?
for i in range(3):
    for j in range(5):
        поставь_блок()
A 8
B 5
C 15
D 3

🏗️ Сборка: Стена в действии

Представь: ты написал 3 строки кода, нажал «запустить» — и черепашка сама построила стену из 24 блоков. Без единого ручного клика.

Вот что делают циклы: превращают минуты ручной работы в секунды автоматической. Это как разница между тем, чтобы копать алмазы руками и использовать кирку с Efficiency V.

👹 Босс: Пиксель-арт +75 XP

Черепашка рисует квадрат 5×5 из блоков. Заполни пропуски:

for строка in range():
    for блок in range():
        поставь_блок()
        вперёд()
    # вернуться в начало ряда и подняться
    ()
    for i in range(5):
        вперёд()
    ()
    вверх()
💡 Подсказка

Квадрат 5×5 — оба range() одинаковые. После каждого ряда черепашка разворачивается, идёт назад, снова разворачивается и поднимается на один блок вверх.

✅ Решение
for строка in range(5):
    for блок in range(5):
        поставь_блок()
        вперёд()
    развернись()
    for i in range(5):
        вперёд()
    развернись()
    вверх()

💭 Итоги

Теперь ты знаешь:

  • for i in range(n) — повтори n раз
  • range(5) даёт числа 0, 1, 2, 3, 4
  • ✅ Вложенные циклы — цикл внутри цикла (строки × столбцы)
  • ✅ Циклы превращают 100 строк в 3

Циклы в реальном мире:

  • 📧 Спам-фильтр проверяет каждое письмо — цикл
  • 🖥️ Пиксели экрана обновляются 60 раз/сек — цикл
  • ⛏️ Minecraft генерирует чанки — вложенные циклы

В следующем уроке: научимся создавать свои команды — функции. Написал один раз, используешь сколько хочешь.