Ты уже рисуешь фигуры и умеешь циклы. Соединим их — и рисунки станут волшебными. Повторяя фигуру с маленьким поворотом, получим спирограф-узор, а случайными точками — звёздное небо. Немного кода — и на экране красота.

t.speed(0) в начало — черепашка будет рисовать быстро.Вложенный цикл: цикл внутри цикла
Спирограф строится на вложенном цикле — одном for внутри другого. Внутренний рисует фигуру (например квадрат), а внешний повторяет её много раз, каждый раз чуть поворачивая.
import turtle
t = turtle.Turtle()
t.speed(0)
for i in range(36):
for j in range(4):
t.forward(120)
t.right(90)
t.right(10)
turtle.done()
(на экране: узор-цветок из 36 повёрнутых квадратов)
Вложенный цикл — цикл внутри цикла:
for i in range(3): внешний: 3 раза
for j in range(4): внутренний: 4 раза КАЖДЫЙ раз
print(i, j)
всего повторов тела: 3 * 4 = 12
Случайные цвета и точки: звёздное небо
Добавим случайность (модуль random). t.goto(x, y) переносит черепашку в точку с координатами, t.dot(размер, цвет) ставит точку, а random.choice(список) берёт случайный цвет из списка. Фон красим turtle.bgcolor("black").
import turtle, random
t = turtle.Turtle()
t.penup()
turtle.bgcolor("black")
cveta = ["white", "yellow", "lightblue"]
for i in range(50):
x = random.randint(-200, 200)
y = random.randint(-200, 200)
t.goto(x, y)
t.dot(6, random.choice(cveta))
turtle.done()
(на экране: 50 разноцветных звёзд на чёрном небе)
Звёздное небо: 50 точек в случайных местах
for i in range(50):
x = случайное от -200 до 200
y = случайное от -200 до 200
t.goto(x, y) прыжок туда (перо поднято!)
t.dot(6, случайный цвет) ставим звезду
t.penup(), иначе черепашка нарисует линии между звёздами вместо отдельных точек. А random.choice(cveta) берёт случайный цвет из списка — списки ты уже знаешь!Упражнение: спирограф и звёздное небо
Первый код — спирограф. Запусти на trinket.io/turtle и попробуй менять цвет, размер и угол поворота.
import turtle
t = turtle.Turtle()
t.speed(0)
t.color("purple")
for i in range(36):
for j in range(4):
t.forward(120)
t.right(90)
t.right(10)
turtle.done()
(узор-цветок из повёрнутых квадратов)
Второй код — звёздное небо со случайными цветами и местами.
import turtle, random
t = turtle.Turtle()
t.speed(0)
t.penup()
turtle.bgcolor("black")
cveta = ["white", "yellow", "lightblue", "pink"]
for i in range(60):
x = random.randint(-250, 250)
y = random.randint(-250, 250)
t.goto(x, y)
t.dot(random.randint(3, 9), random.choice(cveta))
turtle.done()
(60 разноцветных звёзд разного размера на чёрном небе)
- В спирографе поменяй угол t.right(10) на 5 или 20 — узор изменится.
- В спирографе замени внутренний квадрат на треугольник (range(3), right(120)).
- В небе добавь свои цвета в список cveta и увеличь число звёзд.
Контрольный вопрос. Как получается узор-спирограф?
Подсказка: Секрет в повторении фигуры с маленьким поворотом на каждом шаге.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Сколько раз выполнится строка print(i, j) в этой программе? Впиши число.
Исходный код для этого задания:
for i in range(3): for j in range(4): print(i, j)Подсказка: Вложенный цикл: внешний 3 раза, и на КАЖДЫЙ внутренний ещё 4. Перемножь.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что делает команда t.goto(50, 100)?
Подсказка: goto — «иди в». В скобках координаты точки на экране.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что делает random.choice(cveta), если cveta — это список цветов?
Подсказка: choice по-английски «выбор». Она случайно выбирает один элемент из списка.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Почему перед рисованием звёздного неба важно вызвать t.penup()?
Исходный код для этого задания:
for i in range(50): t.goto(x, y) t.dot(6, "white")Подсказка: goto с опущенным пером рисует линию до новой точки. Что убирает penup?
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Напиши строку-заголовок цикла for, который повторит тело 36 раз, используя переменную i.
Исходный код для этого задания:
# напиши ниже строку-заголовок цикла на 36 повторов t.forward(100)Подсказка: Шаблон: for i in range(сколько):. Не забудь двоеточие.
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Напиши команду, чтобы черепашка t перепрыгнула в центр экрана — в точку с координатами 0, 0.
Исходный код для этого задания:
import turtle t = turtle.Turtle() # напиши ниже команду перехода в точку 0, 0Подсказка: Переход в точку — goto(x, y). Шаблон: t.goto(0, 0).
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. В списке cveta лежат цвета. Напиши команду print, которая выведет один случайный цвет из этого списка.
Исходный код для этого задания:
import random cveta = ["white", "yellow", "lightblue"] # напиши ниже команду print со случайным цветом из cvetaПодсказка: Случайный элемент списка — random.choice(список). Шаблон: print(random.choice(cveta)).
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Программа со звёздным небом падает с ошибкой на random.choice(…). Что забыли в начале?
Исходный код для этого задания:
cveta = ["white", "yellow"] t.dot(6, random.choice(cveta))Подсказка: Чтобы пользоваться random.choice, модуль random надо сначала подключить.
Онлайн-проверка ответа появится позже
Что дальше
Ты научился рисовать узоры вложенными циклами и раскрашивать небо случайными звёздами — это уже красивая генеративная графика. Ты прошёл весь фундамент Python! В следующем разделе — твой финальный проект: соберёшь свою игру или квест из всего, что уже умеешь.
