Морская черепаха плывёт в прозрачной воде, вид сверху.

Рисование фигур с помощью модуля Python Turtle

Пошаговое руководство, посвященное изучению модуля Python Turtle.

Делиться

f00a71a375f23f4c30dfad5360d8de0f

Начинающим пользователям Python достаточно знать, что они могут программировать функции, вводить итерации с помощью циклов и определять, какую программу выполнить, используя условные операторы, такие как if, elif и else. Но Python гораздо мощнее: он может получать доступ к файлам и обрабатывать их, создавать интересные игры, моделировать научные концепты, обрабатывать большие данные, генерировать модели машинного обучения и многое другое!

В этой статье мы будем использовать Python для создания графических результатов с помощью модуля Turtle. Это руководство для начинающих, которое научит вас рисовать фигуры и программировать рисование с помощью Python. Для дальнейшего изучения необходимо иметь глубокое понимание основ Python: базовых операторов, циклов, классов и объектов, а также доступа к модулям.

Модуль Turtle в Python

Модуль turtle в Python позволяет создавать графические изображения с помощью кода. Модуль предоставляет указатель, который можно настроить как черепашку (отсюда и название), а движение черепашки оставляет за собой след, рисуя фигуры и создавая визуальные узоры на экране. Модуль устанавливается вместе со стандартной библиотекой Python, а это значит, что нам не нужно устанавливать его самостоятельно. Доступ к его классам и функциям можно легко получить с помощью следующего оператора импорта:

из импорта черепахи *

Теперь давайте углубимся в изучение этого модуля, используя официальную документацию Python: https://docs.python.org/3/library/turtle.html

Основные команды черепашки

Как видно из приведенной выше документации, основные команды, которые мы можем отдавать нашей черепахе, следующие:

  • Функция forward() указывает черепахе, на какое расстояние ей нужно переместиться вперед. В качестве аргумента она принимает целочисленное значение.
  • Функция backward() указывает черепахе, на какое расстояние ей нужно переместиться назад. Она также принимает в качестве аргумента целочисленное значение.
  • Функция `left()` указывает черепахе повернуться влево на определенный угол, который был передан функции в качестве аргумента.
  • Функция right() указывает черепахе повернуться вправо на определенный угол, который был передан функции в качестве аргумента.
  • Функция color() изменяет цвет черепашки в соответствии со строкой, переданной в качестве аргумента (например, «pink»). Здесь можно получить доступ к названиям цветов.
  • Функция `width()` изменит ширину указателя на заданное целое число.
  • Функция exitonclick() позволит нам закрыть экран, сгенерированный нашим кодом, простым щелчком мыши.

Запустите следующий код и измените его в соответствии с вашими потребностями, чтобы понять, что делает черепаха при вызове каждой из вышеуказанных функций.

from turtle import * color(«pink») width(5) forward(100) left(45) color(«blue») width(4) forward(100) left(45) forward(20) color(«red») width(4) forward(60) left(45) backward(50) color(«yellow») width() forward(100) right(45) exitonclick()

c61d0d604a40b6200379e18fd171a7c3

Использование объектно-ориентированной черепашьей графики

Теперь, когда мы рассмотрели, как работают основные функции модуля и как генерируется вывод, мы воспользуемся концепцией объектно-ориентированного программирования, описанной в документации, чтобы углубить наше понимание. Концепция классов и объектов, создаваемых с помощью конструктора, упрощает программирование сложных программ с переменными, имеющими схожие параметры, но разные значения. Именно здесь ООП оказывается полезным, и его использование в модуле позволит нам использовать более одной черепашки одновременно.

Для дальнейшего продвижения важно иметь базовое понимание классов и объектов, в частности, как создаются объекты с их атрибутами и методами.

Давайте создадим объекты «черепаха» и «экран»:

from turtle import Turtle, Screen my_turtle = Turtle() print(my_turtle)

5f4700552da21c444c12bd677d5d2164

Как видно на скриншоте выше, объект черепахи создан, и его местоположение определено. Теперь мы воспользуемся документацией для настройки нашей черепахи.

Мы определим форму, цвет и ширину нашей черепахи, используя следующий код:

my_turtle.shape(«turtle») my_turtle.color(«coral1») my_turtle.width(4)

Давайте также определим объект экрана и настроим его.

screen = Screen() screen.title('Рисование фигур с помощью модуля Turtle') screen.bgcolor(«white») screen.exitonclick()

2aedd3e6af06d50edfca7691dc98bd31

Объект экрана был определен выше, и его заголовок и цвет фона были установлены соответствующим образом. Теперь перейдем к главной цели этого урока!

Рисование фигур

Теперь мы научимся рисовать разные фигуры с помощью нашей специально созданной черепашки!

Треугольник

Первой фигурой, которую мы нарисуем, будет треугольник. Его можно нарисовать, используя основные функции, которые мы обсуждали выше: forward и right. Мы знаем, что треугольник состоит из 3 сторон, и для равностороннего треугольника угол между каждой стороной равен 60 градусам. Мы можем нарисовать этот треугольник, используя следующие строки кода:

my_turtle.forward(200) my_turtle.right(120) my_turtle.forward(200) my_turtle.right(120) my_turtle.forward(200) my_turtle.right(120)

c7f6cd3fca9bda55b1c203a7e902475e

Как видите, мы успешно создали треугольник с помощью нашей черепахи. Обратите внимание, что мы установили угол, на который черепаха двигается вправо, равным 120, то есть оставшийся угол, который станет внутренним углом треугольника, будет равен 180 – 120 = 60. Это и было нашей целью. Мы будем работать аналогично для следующей фигуры.

Квадрат

Теперь мы с помощью нашей черепашки нарисуем квадрат. Поскольку у квадрата 4 стороны, мы будем использовать метод движения вперед 4 раза, устанавливая угол равным 360/4 = 90º всякий раз, когда используем правильный метод. Давайте также изменим цвет черепашки на темно-бирюзовый (Цвета черепашки).

Вот наш код для рисования квадрата:

my_turtle.color(«темно-бирюзовый») my_turtle.forward(200) my_turtle.right(90) my_turtle.forward(200) my_turtle.right(90) my_turtle.forward(200) my_turtle.right(90) my_turtle.forward(200) my_turtle.right(90)

a134e452bae52f07bbbbe4a90dac5408

Пентагон

Далее мы создадим пятиугольник, пятиугольную фигуру, у которой угол между сторонами равен 108 градусам. Это означает, что внешний угол будет равен 72 градусам. Мы внесем это в наш код, на этот раз используя 5 строк кода для 5 сторон. Мы также изменим цвет нашей черепахи.

my_turtle.color(«весенний зеленый») my_turtle.forward(150) my_turtle.right(72) my_turtle.forward(150) my_turtle.right(72) my_turtle.forward(150) my_turtle.right(72) my_turtle.forward(150) my_turtle.right(72) my_turtle.forward(150) my_turtle.right(72)

699f63b1c264da0a13b7ecd2de2a1f22

Как видно из приведенного выше блока кода, мы уменьшили скорость перемещения вперед с 200 до 150, чтобы пятиугольник можно было нарисовать в пределах экрана.

Создание алгоритма

Мы использовали модуль turtle для рисования треугольника, квадрата и пятиугольника. Как видно из приведенного выше примера, легко заметить закономерность. Черепашка движется вперед и вправо столько раз, сколько сторон у фигуры. Для рисования треугольника, то есть трехсторонней фигуры, черепашка движется вперед, затем вправо, затем снова вперед, затем вправо, затем снова вперед и снова вправо — всего 3 подхода движения вперед и вправо. Для квадрата тот же подход выполняется четыре раза, то есть столько раз, сколько сторон у фигуры. Аналогично и для пятиугольника. Таким образом, можно установить закономерность повторяющихся функций движения вперед и вправо. Можно задать фиксированное значение пройденного расстояния при каждом движении черепашки вперед. Что касается угла, заданного методом right, то, как и количество повторений операторов зависит от количества сторон фигуры, так и сам угол определяется количеством сторон. Этот внешний угол легко вычислить по следующей формуле:

Внешний угол = 360 / Количество сторон

Внешний угол треугольника будет равен 360/3 = 120. Внешний угол квадрата будет равен 360/4 = 90, и так далее. Это будет использоваться для ввода данных в правильный метод.

Определение функции

Теперь определим универсальную функцию, которая принимает количество сторон фигуры для её отрисовки. Если мы передадим в качестве аргумента 3, она создаст треугольник. Если мы передадим в качестве аргумента 8, она создаст восьмиугольник и так далее.

def draw_shapes(num_sides): angle = 360 / num_sides for i in range(num_sides): my_turtle.forward(50) my_turtle.right(angle)

Функция принимает количество сторон, вычисляет внешний угол, который передается в метод `right`, и выполняет методы `forward` и `right` столько раз, сколько сторон. Так, предположим, мы хотим нарисовать восьмиугольник, мы вызовем функцию и передадим ей число 8 в качестве аргумента. Мы также можем определить цвет фигуры:

my_turtle.color(«бледно-фиолетово-красный») draw_shapes(8)

b410cb4061b08282b27db94aad2a2b4d

Рисование фигур в заданном диапазоне

Теперь мы воспользуемся определенной выше функцией и циклом for для перебора диапазона чисел, каждое из которых соответствует стороне. Начнем с 3 для треугольника, и наша черепашка нарисует столько фигур, сколько мы захотим. Допустим, мы хотим нарисовать треугольник, квадрат, пятиугольник и так далее до десятиугольника, мы будем перебирать числа от 3 до 11, поскольку 11 исключено из диапазона цикла for.

Добавим также возможность рисовать каждую фигуру разным цветом. Для этого создадим список цветов, и цикл for будет перебирать цвета из этого списка.

my_colors = [«темно-серый», «ярко-розовый», «полуночно-синий», «оранжевый», «индиго», «темно-морской зеленый», «бежевый», «бледно-фиолетово-красный», «небесно-голубой», «весенний зеленый»]

После того как мы создадим список цветов, мы изменим нашу функцию, добавив в нее возможность изменения цвета, а затем пройдемся по диапазону цветов, чтобы нарисовать фигуры.

def draw_shapes(num_sides): angle = 360 / num_sides my_turtle.color(my_colors[3-num_sides]) for i in range(num_sides): my_turtle.forward(75) my_turtle.right(angle) for shape_size_n in range(3,11): draw_shapes(shape_size_n)

e12fdc1a4d7710670610fc280c549d9f

Заключение

В этом уроке мы изучили модуль Turtle, поняли его основные функции и концепцию ООП, а также использовали его для создания фигур. Это был урок по Python среднего уровня, требующий базового понимания классов и объектов, определения и вызова функций, а также настройки цветов с помощью Trinket. Это базовый пример того, что можно сделать с модулем Turtle. Мы можем изучить модуль подробнее и многому научиться в программировании с его помощью!

Источник: towardsdatascience.com

✅ Найденные теги: Python, Turtle, Модуль, новости, Рисование, Фигуры

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Фото сгенерированных лиц: исследование показывает, что люди не могут отличить настоящие лица от сгенерированных
Нейросети построили капитализм за трое суток: 100 агентов Claude заперли…
Скетч: цифровой осьминог и виртуальный мир внутри компьютера с человечком.
Сцена с жестами пальцами, где один жест символизирует "VPN", а другой "KHP".
‼️Paramount купила Warner Bros. Discovery — сумма сделки составила безумные…
Скриншот репозитория GitHub "Claude Scientific Skills" AI для научных исследований.
Структура эффективного запроса Claude с элементами задачи, контекста и референса.
Эскиз и готовая веб-страница платформы для AI-дизайна в современном темном режиме.
ideipro logotyp
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых