Урок 6. Циклы и повторение
На этом уроке мы познакомимся с циклом for и научимся заменять повторяющиеся команды короткой и понятной конструкцией.
Главная идея урока
В предыдущих уроках мы часто писали одинаковые команды несколько раз подряд. Например, чтобы нарисовать квадрат, нужно четыре раза пройти вперёд и повернуть.
Цикл помогает не повторять одинаковый код вручную. Мы один раз пишем команды, а Python выполняет их несколько раз.
Новая конструкция
for i in range(4):for i in range(4):
t.forward(100)
t.left(90)
Все команды, которые должны повторяться, пишутся с отступом.
Важно понять
В Python отступы имеют значение. Если команда написана с отступом после строки for, она находится внутри цикла и будет повторяться.
Если команда написана без отступа, она уже не относится к циклу.
После строки с for обязательно ставится двоеточие.
Пример 1. Квадрат без цикла
Сначала вспомним, как мы рисовали квадрат раньше.
import turtle
t = turtle.Turtle()
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
turtle.done()
Код работает, но в нём много повторений.
Пример 2. Квадрат с циклом
Теперь нарисуем тот же квадрат, но с помощью цикла.
import turtle
t = turtle.Turtle()
for i in range(4):
t.forward(100)
t.left(90)
turtle.done()
Строка for i in range(4): означает: повторить команды внутри цикла 4 раза.
Команды t.forward(100) и t.left(90) стоят с отступом, поэтому они выполняются внутри цикла.
Задание 1. Квадрат побольше
Измени программу с циклом так, чтобы Черепашка нарисовала квадрат со стороной 150.
Условия:
- используй цикл
for; - цикл должен повторяться 4 раза;
- длина стороны квадрата — 150 шагов.
Подсказка: нужно изменить только число в команде forward().
Пример 3. Равносторонний треугольник с циклом
У равностороннего треугольника 3 стороны. Значит, цикл должен повториться 3 раза.
import turtle
t = turtle.Turtle()
for i in range(3):
t.forward(120)
t.left(120)
turtle.done()
После каждой стороны Черепашка поворачивает на 120 градусов.
Задание 2. Цветной треугольник
Нарисуй равносторонний треугольник с помощью цикла.
Условия:
- используй цикл
for; - цикл должен повторяться 3 раза;
- сторона треугольника — 160 шагов;
- цвет линии — синий;
- толщина линии — 6.
Мини-разбор: что повторяется?
Перед тем как писать цикл, нужно понять, какие команды повторяются.
t.forward(100)t.left(90)t.forward(120)t.left(120)Пример 4. Пятиугольник
У правильного пятиугольника 5 сторон. Чтобы Черепашка вернулась в начальное направление, сумма всех поворотов должна быть 360 градусов.
Значит, каждый поворот будет равен 360 / 5 = 72 градуса.
import turtle
t = turtle.Turtle()
t.pensize(5)
t.color("purple")
for i in range(5):
t.forward(100)
t.left(72)
turtle.done()
Чем больше сторон у правильного многоугольника, тем меньше угол поворота.
Задание 3. Шестиугольник
Нарисуй правильный шестиугольник с помощью цикла.
Условия:
- у шестиугольника 6 сторон;
- цикл должен повторяться 6 раз;
- сторона — 90 шагов;
- поворот после каждой стороны — 60 градусов;
- цвет линии — оранжевый.
Пример 5. Пунктирная линия с циклом
На прошлом уроке мы рисовали пунктир вручную. Теперь сделаем это короче с помощью цикла.
import turtle
t = turtle.Turtle()
t.pensize(5)
t.color("green")
for i in range(6):
t.pendown()
t.forward(40)
t.penup()
t.forward(25)
turtle.done()
Каждый раз Черепашка рисует короткий отрезок, потом идёт немного без следа.
Задание 4. Длинный пунктир
Нарисуй пунктирную линию с помощью цикла.
Условия:
- в пунктире должно быть 10 отрезков;
- каждый отрезок — 30 шагов;
- каждый промежуток — 20 шагов;
- цвет линии — красный;
- толщина линии — 4.
Пример 6. Лестница
Цикл можно использовать не только для фигур, но и для повторяющегося рисунка. Например, нарисуем лестницу.
import turtle
t = turtle.Turtle()
t.pensize(4)
t.color("blue")
for i in range(5):
t.forward(50)
t.left(90)
t.forward(30)
t.right(90)
turtle.done()
Внутри цикла Черепашка каждый раз делает одну “ступеньку”.
Задание 5. Своя лестница
Измени программу с лестницей.
Условия:
- лестница должна состоять из 8 ступенек;
- горизонтальная часть ступеньки — 40 шагов;
- вертикальная часть ступеньки — 25 шагов;
- цвет линии — фиолетовый;
- толщина линии — 5.
Типичные ошибки
- Забыли двоеточие после строки
for i in range(4):. - Не сделали отступы у команд внутри цикла.
- Сделали отступ только у первой команды, а вторая команда оказалась вне цикла.
- Перепутали количество повторений в
range(). - Для треугольника использовали поворот 90 градусов вместо 120.
- Для многоугольника забыли посчитать угол поворота.
Творческое задание
Создай рисунок, в котором используется цикл for.
Можно нарисовать:
- пунктирную дорожку;
- лестницу;
- правильный многоугольник;
- узор из повторяющихся линий;
- рамку из коротких отрезков.
Условия:
- используй хотя бы один цикл
for; - внутри цикла должно быть не меньше двух команд;
- используй цвет и толщину линии;
- рисунок должен отличаться от примеров урока.
Проверь себя
- Зачем нужен цикл
for? - Что означает
range(4)? - Почему команды внутри цикла пишутся с отступом?
- Что будет, если забыть двоеточие после строки
for? - Сколько раз выполнится цикл
for i in range(6):? - Какой угол поворота нужен для квадрата?
- Какой угол поворота нужен для равностороннего треугольника?
Итог урока
Сегодня мы познакомились с циклом for и научились повторять команды без лишнего копирования. Теперь программы стали короче, аккуратнее и понятнее.
На следующем уроке мы используем циклы для создания красивых узоров и орнаментов.