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

Приступаем

Знакомимся с двумя главными объектами графики Turtle — экраном и самой черепашкой — и с идеей, что у черепашки есть состояние.

Модуль turtle входит в стандартную поставку Python — ничего дополнительно устанавливать не нужно.

Немного истории

Идея «черепашьей графики» появилась в конце 1960-х в языке Logo, который придумали Сеймур Пейперт и его коллеги специально для обучения детей программированию. Мысль была простой и сильной: пусть код будет виден — не абстрактные числа на экране, а линия, которую оставляет за собой воображаемая черепашка. Эта идея настолько удачная, что дожила до наших дней почти без изменений — модуль turtle в Python прямой потомок той самой Logo-черепашки.

Экран и черепашка — два разных объекта

Прежде чем рисовать, нужны два объекта: экран (turtle.Screen()) — окно, в котором происходит рисование, и черепашка (turtle.Turtle()) — то, что, собственно, рисует.

screen_i_cherepashka.py
import turtle

screen = turtle.Screen()
screen.setup(width=480, height=360)
artist = turtle.Turtle()

screen.exitonclick()
Результат выполнения
Белое окно Turtle с маленьким чёрным треугольником-черепашкой в центре, направленным вправо
Пустое окно 480×360 с черепашкой в начале координат, курс направлен вправо

Маленький чёрный треугольник в центре — это и есть черепашка в исходном положении. Курс (направление) черепашки по умолчанию направлен вправо — на восток.

Состояние черепашки
position(0, 0)
heading0° (восток)
pendown

У черепашки есть состояние

Заметьте: у черепашки в любой момент есть несколько характеристик одновременно — где она находится (позиция), куда смотрит (курс), и рисует ли она сейчас (перо). Каждая команда, которую мы будем изучать в этой главе, меняет какую-то одну из этих характеристик, не трогая остальные. Мы будем возвращаться к этой панели состояния на протяжении всей главы.

Зачем два отдельных объекта?
Разделение экрана и черепашки позволяет иметь на одном экране сразу несколько черепашек — у каждой будет своё собственное состояние, независимое от остальных.
Практика: начинаем с настройки экрана
Модуль turtle открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Практика выполняется локально
Открыть практику →