Глава 10 · Немного автоматизации!

Мини-проект — спирали из дуг

Завершаем главу узором, который меняется на каждом шаге цикла, — и подводим итоги.

Финальный мини-проект главы: спираль из дуг — каждая следующая дуга немного больше предыдущей.

spirali_iz_dug.py
radius = 5

for _ in range(60):
    artist.circle(radius, 90)   # дуга в четверть окружности
    radius += 3                 # каждый раз чуть больше
Изменение переменной внутри цикла — обычное дело
В отличие от предыдущих примеров, здесь radius меняется на каждом шаге цикла — это и создаёт эффект нарастающей спирали, а не повторяющегося узора.
★★ Самостоятельная задача
Спираль из квадратов

Замените дугу на маленький квадрат (цикл на 4 стороны) внутри внешнего цикла — получится спираль из уменьшающихся или увеличивающихся квадратов.

Итоги

Что мы узнали в этой главе

  • for ... in range(n) повторяет блок кода заданное число раз — и заменяет ручное копирование одинаковых строк.
  • for умеет перебирать не только числа, но и символы строки.
  • while повторяет действие, пока условие остаётся истинным — используется, когда число повторов заранее неизвестно.
  • break прерывает цикл полностью; continue пропускает текущий шаг и переходит к следующему.
  • Циклы можно вкладывать друг в друга — тогда внутренний цикл выполняется полностью на каждом шаге внешнего.
  • Все фигуры из глав 6–7, нарисованные вручную, теперь можно записать в 2–4 строки с циклом.