Глава 6 · Рисуем классные вещи с помощью Turtle

Движение вперёд и назад

Первое, что должна уметь черепашка — двигаться. В этом разделе вы напишете свою первую программу, которая по-настоящему рисует.

Зачем это нужно

Всё, что вы нарисуете дальше — многоугольники, дома, мандалы — строится из одной и той же пары действий: «проехать немного» и «повернуть на какой-то угол». Освоив четыре команды этого раздела, вы получите строительные блоки для всей главы.

Синтаксис

Первый шаг: просто вперёд

vpered_120.py
import turtle

screen = turtle.Screen()
screen.setup(width=480, height=300)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")

artist.forward(120)

screen.exitonclick()
Результат выполнения
Прямая фиолетовая линия длиной 120 пикселей от центра окна вправо, с черепашкой на конце
artist.forward(120) — черепашка проехала 120 пикселей вправо, оставив линию

Вперёд, потом назад

vpered_nazad.py
import turtle

screen = turtle.Screen()
screen.setup(width=480, height=300)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")

artist.forward(120)
artist.backward(50)

screen.exitonclick()
Результат выполнения
Та же линия, но короче — черепашка вернулась на 50 пикселей назад по прямой
Тот же forward(120), затем backward(50) — черепашка отступила назад по той же линии
Совет
Числа в forward() тоже могут быть отрицательными. forward(-50) и backward(50) делают одно и то же.

Первая настоящая программа: буква «Г»

Проедем вперёд, повернём и проедем ещё раз:

bukva_g.py
import turtle

screen = turtle.Screen()
screen.setup(width=480, height=360)
artist = turtle.Turtle()
artist.pensize(3)
artist.pencolor("#5B24F9")

artist.forward(120)
artist.left(90)
artist.forward(80)

screen.exitonclick()
Результат выполнения
Уголок из двух отрезков в форме буквы Г, нарисованный черепашкой
forward(120), left(90), forward(80) — получилась буква «Г»

Разбор по шагам

Типичная ошибка

Внимание
Начинающие часто путают right()/left() с движением — кажется, что черепашка должна сместиться в сторону. На самом деле эти команды только поворачивают курс и не двигают черепашку ни на пиксель.

Диагностика: если после поворота фигура выглядит «сплющенной» или линии накладываются друг на друга — скорее всего, вы забыли вызвать forward() после поворота, либо перепутали местами поворот и движение.

Попробуйте изменить

★ Базовая практика
Другое расстояние и угол

Измените расстояние 120 на 250 и угол 90 на 45. Перед запуском попробуйте предсказать: в какую сторону теперь «смотрит» черепашка после поворота?

★★ Самостоятельная задача
Третий отрезок

Добавьте третью пару команд left(90) и forward(120) в конец программы. Какая фигура получится?

Современный вариант

В старом коде черепашку часто рисуют без явного объекта — модуль turtle автоматически создаёт «черепашку по умолчанию».

Классический подход → современный Python 3.14
Классический подход
import turtle

# без явного объекта —
# используется скрытая
# черепашка по умолчанию
turtle.forward(120)
turtle.left(90)
turtle.forward(80)
turtle.done()
Современный Python 3.14
import turtle

# явный объект — понятно,
# какая черепашка рисует,
# легко добавить вторую
artist = turtle.Turtle()
artist.forward(120)
artist.left(90)
artist.forward(80)
turtle.done()
Что использовать сегодня: явный объект turtle.Turtle(). Он ничего не усложняет, зато сразу готовит вас к главе про объекты и легко масштабируется — если позже понадобится нарисовать сцену из нескольких черепашек, у каждой будет своё имя и своё состояние. Модульные функции (turtle.forward() без объекта) всё ещё встречаются в старом коде и учебниках — знать их полезно, но начинайте привычку сразу с объекта.
Практика: эксперименты, задание и самостоятельная практика
Модуль turtle открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Практика выполняется локально
Открыть практику →

Что запомнить

  • forward()/backward() двигают черепашку по прямой; left()/right() только поворачивают курс.
  • Позиция и курс — это два независимых свойства черепашки.
  • Современный стиль — создавать явный объект turtle.Turtle(), а не полагаться на скрытую черепашку по умолчанию.