Рисуем узоры повторением
Превращаем циклы в художников: рисуем узоры из символов и понимаем, что красивое можно собрать из простого, если повторять.
Узор в программировании — это красивый рисунок, который получается, когда цикл много раз повторяет простую команду.
Красота из повторения
Оглянись вокруг: забор — это повторяющиеся доски, лесенка — повторяющиеся ступеньки, узор на обоях — повторяющийся рисунок. Природа и люди обожают повторения! И циклы помогают нам легко создавать такую красоту в программе.
Мы будем рисовать узоры из обычных символов — звёздочек * и решёток #. Это называется «рисование текстом», и это очень весело.
Хитрость: умножение строки
В Python есть маленькое волшебство. Если умножить строку на число, она повторится! Например, "*" * 5 даст ***** — пять звёздочек. Проверим:
print("*" * 5)
print("=" * 10)
print("ха" * 3)
Вывод:
***** ========== хахаха
Удобно, правда? Теперь соединим этот трюк с циклом и нарисуем целую стену из звёздочек.
Рисуем прямоугольник из звёздочек
Чтобы получить прямоугольник, напечатаем строчку из звёздочек несколько раз. Цикл повторит печать, а умножение строки сделает каждую строчку длинной:
for i in range(5):
print("*" * 5)
Вывод:
***** ***** ***** ***** *****
Пять строчек по пять звёздочек — получился квадратик из звёзд! Цикл повторил команду print("*" * 5) пять раз. Поменяй числа — и получится прямоугольник любого размера.
Растущая ёлочка
А что, если каждая строчка будет чуть длиннее предыдущей? Получится треугольник, похожий на ёлочку. Для этого используем счётчик i, который сам растёт с каждым повтором:
for i in range(1, 6):
print("*" * i)
Вывод:
* ** *** **** *****
На первом повторе i равен 1 — одна звёздочка. На втором i равен 2 — две звёздочки. И так далее. Запись range(1, 6) значит «считай от 1 до 5» (последнее число 6 само не входит — об этом узнаем дальше). Так из простого цикла вырос настоящий рисунок!
Попробуй сам
Нарисуй лесенку из решёток. Запусти, а потом попробуй сделать её выше — поменяй число в range.
for i in range(1, 5):
print("#" * i)
Вывод:
# ## ### ####
Частые ошибки
- Перепутать «звёздочку умножения» и «звёздочку-символ». В
"*" * 5первая звёздочка в кавычках — это рисунок, а вторая (без кавычек) — знак умножения. Кавычки решают всё! - Ждать ровный треугольник по центру. Пока наши узоры «прижаты» к левому краю — это нормально и красиво. Узоры по центру — задачка на потом.
Что мы узнали
- Из повторений рождается красота: узоры, фигуры, рисунки.
"символ" * числоповторяет символ нужное число раз.- Счётчик
iвнутри цикла можно использовать, чтобы строчки росли.