Skip to content

Цілі

  • Розуміти та застосовувати цикли for
  • Осмислено використовувати лічильні змінні
  • Програмувати складніші геометричні візерунки

Цикли For

Ви напевно пам'ятаєте, як ви відправляли робота Кароль через маленькі світи. Часто Кароль довелося виконувати певні інструкції кілька разів поспіль. Замість того, щоб вводити кожну інструкцію окремо, ми використовували цикли. Ви напевно пам'ятаєте наступний приклад:

repeat 5 times 
Step
TurnRight
endrepeat

Цикли існують не тільки у Кароль, але й у Тобі черепашки. Тут вони виглядають дещо інакше, але служать тій же меті. Якщо ви хочете повторити інструкції фіксовану кількість разів (Кароль: repeat 5 times), ви використовуєте команду for i in range(початок, кінець): в Python.

python
import turtle
t = turtle.Turtle()

for i in range(1, 10):
    t.write(i)
    t.forward(10)
t.forward(10)

Тут i є змінною, яку можна використовувати так само, як змінні з блоку 1. Важливо: вона завжди збільшується на 1 в кінці циклу. Її часто називають лічильною змінною.

Важлива примітка

Лічильна змінна i дорівнює першому числу в range(початок, кінець) на початку циклу. Однак i ніколи не стає кінець, оскільки умова завершення циклу досягається як тільки i досягає кінець. У нашому прикладі i рахує до 9, потім збільшується на 1 і таким чином завершує цикл.

Різні варіанти range()

python
# Тільки одне число: від 0 до n-1
for i in range(5):      # 0, 1, 2, 3, 4
    t.write(i)

# Два числа: від початку до кінця-1  
for i in range(2, 8):   # 2, 3, 4, 5, 6, 7
    t.write(i)

# Три числа: від початку до кінця-1 кроками
for i in range(0, 10, 2):  # 0, 2, 4, 6, 8
    t.write(i)

Геометричні візерунки з циклами For

Прості фігури

python
import turtle
t = turtle.Turtle()

# Рівносторонній трикутник
for i in range(3):
    t.forward(100)
    t.left(120)

# Квадрат  
for i in range(4):
    t.forward(80)
    t.left(90)

Складніші візерунки

python
import turtle
t = turtle.Turtle()

# Спіраль
for i in range(50):
    t.forward(i * 2)
    t.left(90)

# Концентричні кола
for i in range(1, 6):
    t.circle(i * 20)
    t.penup()
    t.right(90)
    t.forward(20)
    t.left(90)
    t.pendown()

Завдання

Завдання 1: Смуги зебри

Намалюйте 5 коротких паралельних ліній поруч одна з одною, які виглядають як смуги зебри, використовуючи цикл.

Підказка

Використовуйте t.forward() та t.penup() / t.pendown(), щоб Тобі міг стрибати, не малюючи.

Завдання 2: Сходинки

Намалюйте сходи з 6 ступенів, кожна ступень, наприклад, 10 кроків високі та 10 кроків широкі.

Завдання 3: Зірка

Напишіть цикл, який малює 5-променеву зірку. Зірка створюється, коли ви робите наступне 5 разів: йти вперед, потім повернути на 144 градуси праворуч.

Завдання 4: Візерунок квітки

Намалюйте 8 кіл навколо центральної точки, щоб вони виглядали як квітка.

Підказка

Після кожного кола: t.left(45) для рівномірного розподілу.

Завдання 5: Райдужні прямокутники

Намалюйте 7 прямокутників різних кольорів поруч один з одним. Кожен прямокутник повинен мати інший колір.

python
кольори = ["red", "orange", "yellow", "green", "blue", "indigo", "violet"]

Підготовка до блоку 5

Подумайте, які частини вашого коду ви використовуєте частіше і як їх можна упакувати в багаторазові будівельні блоки.