Навигация по странице
Описание модуля
Модуль turtle в Python — это встроенный модуль в Python, который предоставляет удобный инструмент для создания графики.
Он использует метод «черепашьей графики», где виртуальная «черепаха» может перемещаться по экрану, оставляя за собой линии. С помощью turtle можно рисовать простые геометрические фигуры, создавать анимации и визуализировать алгоритмы.
Сама по себе «черепаха» была частью оригинального языка программирования Logo. Также вы могли встретить похожий инструментарий в языке КуМир, где для создания графики, в том числе, используется Исполнитель Черепаха.
В чем смысл названия «черепашья графика»? В конце 1960-х годов Сеймур Пейперт, преподаватель Массачусетского технологического института и создатель языка Logo, начал использовать робота, который был похож на черепашку, чтобы обучать детей программированию.
Этот робот был связан с компьютером, на котором обучающиеся вводили различные команды, заставляя робота передвигаться по полотну. Чтобы оставлять след на полотне, в конструкции робота-черепахи было предусмотрено специальное перо, которое по команде могло опускаться или подниматься. В последствии, механическая черепаха, ползающая по столу, была заменена на условное изображение на экране.
Так что не стоит думать, что черепаха, опускающая хвост и оставляющая рисунки на песке, как-то связана с реальными животными. На самом деле черепахи не оставляют следы на пляже своим хвостом.
Обычно черепахи передвигаются по песку с помощью ласт, и следы от их передвижения остаются от конечностей (лап), а не от хвоста. Хвост черепах может оставлять следы только в воде или в очень мягком песке, но эти следы будут отличаться от следов, которые обычно ассоциируются с передвижением по пляжу.
На этом минутка «В мире животных» заканчивается, и мы возвращаемся к программированию. Давайте теперь научимся работать с модулем turtle в Python.
Импорт модулей в Python
В Python есть три способа импортировать содержимое модулей, пакетов и библиотек в ваш проект:
- Импорт всего модуля целиком.
- Импорт отдельных (или всех) функций из модуля.
- Импорт с использование псевдонимов.
При работе с модулем turtle мы будем использовать второй вариант импорта, то есть такую конструкцию:
from turtle import *
При этом обратите внимание, что при таком импорте у вас может случиться конфликт имён!
Во-первых, файл, в котором вы пишете код программы, не должен называться turtle.
Во-вторых, вы не должны в коде использовать собственные функции, имена которых перекликаются с именами функций из модуля turtle.
В редких случаях у вас может возникнуть ошибка, содержащая следующий текст «No module named ‘_tkinter’». Она означает одно их двух: либо версия пакет tkinter не соответствует версии Python, либо данный пакет вовсе не установлен.
Обычно, такая ошибки не возникает, потому что пакет tkinter — стандартный и уже встроен в текущую версию Python. Но если так случилось, что данного пакета у вас нет, установите его следующей командой:
pip install tk
Основные функции модуля turtle
Сразу отметим, что работать с данным модулем, как и предполагается в документации, мы будем в процедурно-ориентированном стиле. То есть не будем создавать новых объектов или изменять какие-либо параметры стандартных объектов. Мы будем просто вызывать необходимые функции прямо в процессе выполнения программы.
Далее мы рассмотрим самые востребованные функции из модуля turtle. С полным списком функций вы можете ознакомиться в официальной документации.
Функции отображения черепахи
Для начала давайте посмотрим на нашу черепаху.
Функция showturtle()
делает черепаху видимой на графическом экране. Если черепаха была скрыта ранее с помощью функции hideturtle()
, вызов showturtle()
снова отображает её.
Многие функции в turtle имеют сокращённую запись. Так, например, функция showturtle()
сокращается до st()
, а функция hideturtle()
— до ht()
.
Проверить, отображается ли в текущий момент черепаха или нет, можно с помощью функции isvisible()
. Она возвращает True
, если черепаха отображается, в противоположном случае функция вернёт False
.
Когда вы рисуете с помощью модуля turtle, черепаха — это указатель, который указывает направление движения и рисует линии. По умолчанию, черепаха смотрит находится в центре полотна и смотрит вправо.
При исполнении следующего кода, у вас на экране откроется окно с полотном и черепахой по центру.
from turtle import *
showturtle()
У вас сразу может возникнуть вопрос: почему мы какую-то стрелку называем черепахой?
Дело в том, что по умолчанию в качестве исполнителя на экран выводится именно классическая стрелка, которая указывает направление движения исполнителя.
Вы можете изменить внешний вид вашей черепахи на любой из доступных:
- Черепаха (turtle)
- Стрелка (arrow)
- Классическая стрелка (classic)
- Квадрат (square)
- Круг (circle)
- Треугольник (triangle)
Для того, чтобы поменять внешний вид исполнителя используется функцию shape()
, в которую необходимо передать строкой название одной из фигур, перечисленных выше.
Например, чтобы изменить форму на черепаху используется следующая команда:
shape(turtle)
Функции завершения работы с графикой
При работе в некоторых средах разработки, например в PyСharm, вы могли заметить, что при исполнении кода окно с полотном на мгновение открывается и сразу же закрывается.
Предотвратить закрытие окна с полотном можно несколькими способами. Для начала, можно вызвать в конце кода вашей программы функцию done()
.
Функция done()
завершает выполнение графического окна модуля turtle, сигнализируя, что работа программы с графикой завершена. Она фиксирует текущее состояние графического окна и переводит его в режим ожидания пользовательского взаимодействия. То есть после этого, можем работать с этим окном, как с обычным — с помощью кнопок справа вверху (свернуть, развернуть и закрыть).
Или же можно вызвать функцию exitonclick()
, которая закроет окно с черепахой по нажатию на левую кнопку мыши.
Сразу закрыть графическое окно можно с помощью функции bye()
. В действительности, функция exitonclick()
просто привязывает вызов функции bye()
к нажатию левой кнопки мыши.
Таким образом, вы можете самостоятельно вызвать bye()
по необходимому условию. Это может быть небольшая пауза, или нажатие какой-либо кнопки на клавиатуре.
Остальные функции мы рассмотрим в следующих статьях: