Графический модуль turtle в Python
Популярный способ познакомить детей с программированием
Графический модуль turtle — популярный способ познакомить детей с программированием. Он был частью оригинального языка программирования Logo.
Представьте роботизированную черепаху, начинающуюся с точки (0, 0) в плоскости x/y. После импорта модуля turtle дайте ей команду turtle.forward(15) , и она переместится (на экране!) на 15 пикселей в направлении, в котором смотрит, рисуя линию при движении. Дайте ей команду turtle.right(25) , и она повернется на месте на 25 градусов по часовой стрелке.
Комбинируя вместе эти и подобные команды, можно легко рисовать замысловатые формы и изображения.
Содержание:
- Общие сведения и подходы работы с модулем turtle ;
- Пример: звезда «Turtle«;
Общие сведения и подходы работы с модулем.
Модуль turtle — это расширенная реализация одноименного модуля из стандартного дистрибутива Python до версии Python 2.5.
Он сохраняет достоинства старого модуля turtle и почти на 100% совместим с ним. Это означает, чтобы дать возможность обучающемуся программисту использовать все команды, классы и методы в интерактивном режиме при использовании модуля из IDLE, запущенного с ключом -n .
Модуль turtle предоставляет графические примитивы черепахи как объектно-ориентированным, так и процедурно-ориентированным способами. Так как turtle для базовой графики использует tkinter , то необходима версия Python3, установленная с поддержкой Tk .
Объектно-ориентированный интерфейс использует по существу два + два класса:
- Класс TurtleScreen определяет графические окна как площадку для рисования. Его конструктору требуется аргумент tkinter.Canvas или ScrolledCanvas . Его следует использовать, когда черепаха используется как часть какого-либо приложения. Функция Screen() возвращает одноэлементный объект подкласса TurtleScreen . Эту функцию следует использовать, когда черепаха используется как автономный инструмент для создания графики. Как одноэлементный объект, наследование от его класса невозможно. Все методы TurtleScreen / Screen также существуют как функции, то есть как часть процедурно-ориентированного интерфейса.
- RawTurtle определяет объекты Turtle , которые рисуются на TurtleScreen . Его конструктору требуется аргумент Canvas , ScrolledCanvas или TurtleScreen , чтобы объекты RawTurtle знали, где рисовать. Производным от RawTurtle является подкласс Turtle , который использует экземпляр Screen , который создается автоматически, если еще не присутствует. Все методы RawTurtle / Turtle также существуют как функции, то есть как часть процедурно-ориентированного интерфейса.
Процедурный интерфейс предоставляет функции, производные от методов классов Screen и Turtle . Названия у них такие же, как у соответствующих методов. Объект экрана screen всегда создается автоматически, когда вызывается функция, производная от метода Screen . Безымянный объект turtle всегда создается автоматически, когда вызывается какая-либо из функций, производных от метода Turtle .
Чтобы использовать несколько черепах на экране, необходимо использовать объектно-ориентированный интерфейс.
Пример простого рисунка с модулем turtle .
from turtle import * color('red', 'yellow') begin_fill() while True: forward(200) left(170) if abs(pos()) 1: break end_fill() done()
Файл конфигурации модуля turtle .
Встроенная конфигурация по умолчанию имитирует внешний вид и поведение старого модуля turtle , чтобы сохранить максимально возможную совместимость с ним.
Если необходимо использовать другую конфигурацию, которая лучше отражает функции этого модуля или лучше соответствует вашим потребностям, например для использования с классами, то можно подготовить файл конфигурации turtle.cfg , который будет прочитан во время импорта и изменить конфигурацию в соответствии с его настройками.
Встроенная конфигурация будет соответствовать следующему файлу turtle.cfg :
width = 0.5 height = 0.75 leftright = None topbottom = None canvwidth = 400 canvheight = 300 mode = standard colormode = 1.0 delay = 10 undobuffersize = 1000 shape = classic pencolor = black fillcolor = black resizemode = noresize visible = True language = english exampleturtle = turtle examplescreen = screen title = Python Turtle Graphics using_IDLE = False
Краткое объяснение записей конфигурации:
- Первые четыре строки соответствуют аргументам метода Screen.setup() .
- Строки 5 и 6 соответствуют аргументам метода Screen.screensize() .
- Форма пера может быть любой из встроенных фигур, например, стрелка, черепаха и т. д. Для получения дополнительной информации попробуйте help(shape) .
- Если не хотите использовать цвет заливки (т.е. сделать черепаху прозрачной), то необходимо написать fillcolor = » (при этом, в cfg-файле непустые строки не должны иметь кавычек).
- Если необходимо отразить состояние модуля turtle , то необходимо использовать resizemode = auto .
- Записи exampleturtle и examplescreen определяют имена этих объектов в том виде, в котором они встречаются в строках документации. Преобразование строк документации методов в строки документации функций удалит эти имена из строк документации.
- using_IDLE : Установите значение True , если регулярно работаете с IDLE и его переключателем -n . Это предотвратит переход turtle.exitonclick() в основной цикл.
В каталоге, где хранится модуль, может быть файл turtle.cfg , а в текущем рабочем каталоге может быть еще один файл, созданный пользователем. Последний переопределит настройки первого.
Пакет с примерами turtledemo .
Пакет turtledemo включает набор демонстрационных скриптов. Эти сценарии можно запускать и просматривать с помощью прилагаемой демонстрационной программы следующим образом:
python -m turtledemo
Кроме того, можно запускать демонстрационные скрипты индивидуально. Например,
python -m turtledemo.bytedesign
Каталог пакета turtledemo содержит:
- Программу-просмотрщик __main__.py , которую можно использовать для просмотра исходного кода скриптов и их одновременного запуска.
- Несколько скриптов, демонстрирующих различные функции модуля turtle . Доступ к примерам можно получить через меню «Examples«. Их также можно запускать автономно.
- Файл turtle.cfg , который служит примером того, как писать и использовать такие файлы.
ПРИМЕЧАНИЕ: Если запуск в терминале команды python -m turtledemo выдает /usr/bin/python : No module named turtledemo, то необходимо установить файлы примеров установленной версии Python. Например для Linux:
sudo apt install python3-examples idle3
И все заработает.
Установка поддержки Tk для Python3 (Tkinter) в Linux/X11.
Запустите оболочку Python (например, /usr/bin/python3 ) и проверьте импорт модуля turtle (например from turtle import * ). Если при попытке импортировать turtle выводится сообщение об ошибке «ModuleNotFoundError: No module named ‘tkinter’«, то в большинстве случаев сообщение говорит о том, что нужно установить поддержку Tcl/Tk.
В основном дистрибутивы Linux выделяют поддержку Tkinter в отдельный пакет. Это избавляет от установки библиотек Tcl / Tk для людей, которые используют Python, но не используют Tkinter . Проще говоря, необходимо установить пакет с именем python3-tk , который и обеспечит установку и поддержку в системе соответствующих версий библиотек Tcl / Tk .
$ sudo apt install python3-tk
В данном случае этот пакет предоставляет библиотеки Tcl / Tk для использования с Python3.
- КРАТКИЙ ОБЗОР МАТЕРИАЛА.
- Рисование/передвижение пера по холсту, модуль turtle
- Поднять/опустить перо при движении в модуле turtle Python
- Скрыть/показать перо на холсте в модуле turtle Python
- Толщина пера и его форма, модуль turtle
- Цвет пера/карандаша и цвет заливки в модуле turtle Python
- Смена позиции пера на холсте в модуле turtle Python
- Сведения о позиции пера на холсте в модуле turtle
- Круг, многоугольник, точка в модуле turtle Python
- Копия формы пера, модуль turtle Python
- Очистка рисунка активного пера в модуле turtle Python
- Функция write() модуля turtle, вывод текста на холсте
- События мыши для пера в модуле turtle
- События клавиатуры и мыши для холста в модуле turtle Python
- Вызвать диалоговое окно в модуле turtle
- Управление холстом/экраном в модуля turtle
- Управление анимацией пера в модуля turtle Python
- Специальные методы пера модуля turtle
- Настройки и специальные методы холста модуля turtle
Как установить модуль пакета Turtle? [закрыт]
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 3 года назад .
Подскажите, пожалуйста, как я могу установить модуль пакета Turtle?
Отслеживать
13.8k 12 12 золотых знаков 43 43 серебряных знака 76 76 бронзовых знаков
задан 8 дек 2020 в 19:50
35 1 1 серебряный знак 5 5 бронзовых знаков1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Turtle — это встроенная библиотека. Вам достаточно для работы с ним импортировать её:
import turtleОтслеживать
ответ дан 9 дек 2020 в 7:08
171 5 5 бронзовых знаковМожет быть и стандартная, только вот она работает на базе tkinter, а tkinter может оказаться не установлен (например, сняли одну галочку при установке Python на Windows), и при импорте будет вылетать ошибка ModuleNotFoundError: No module named ‘tkinter’ . Нужно уточнять подробности вопроса.
9 дек 2020 в 7:22
@insolor вполне возможно, что tkinter не установлен. Спасибо за замечание, в следующий раз буду уточнять.
9 дек 2020 в 7:27
@insolor Ага. На Убунте вообще ткинтера нет в встроенном питоне — надо sudo apt install python3-tkinter 😉
Описание модуля Turtle
Стандартная библиотека Python содержит модуль turtle , предназначенный для обучения программированию. Этот модуль содержит набор функций, позволяющих управлять черепахой. Черепаха умеет выполнять небольшой набор команд, а именно:
Команда Значение forward(X) Пройти вперёд X пикселей backward(X) Пройти назад X пикселей left(X) Повернуться налево на X градусов right(X) Повернуться направо на X градусов penup() Не оставлять след при движении pendown() Оставлять след при движении shape(X) Изменить значок черепахи (“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”) stamp() Нарисовать копию черепахи в текущем месте color() Установить цвет begin_fill() Необходимо вызвать перед рисованием фигуры, которую надо закрасить end_fill() Вызвать после окончания рисования фигуры width() Установить толщину линии goto(x, y) Переместить черепашку в точку (x, y) Почему не устанавливается модуль turtle?
пытаюсь скачать модуль turtle через pip. Пишу: pip install turtle. Выдает такую вот психоделическую дичь:
Collecting turtle
Using cached turtle-0.0.2.tar.gz (11 kB)
ERROR: Command errored out with exit status 1:
command: ‘d:\users\моргенштерн\appdata\local\programs\python\python39\python.exe’ -c ‘import io, os, sys, setuptools, tokenize; sys.argv[0] = ‘»‘»‘D:\\Users\\Моргенштерн\\AppData\\Local\\Temp\\pip-install-xxm4e8b9\\turtle_b4a34253d5e146bb8a66d52189e73f1e\\setup.py'»‘»‘; __file__='»‘»‘D:\\Users\\Моргенштерн\\AppData\\Local\\Temp\\pip-install-xxm4e8b9\\turtle_b4a34253d5e146bb8a66d52189e73f1e\\setup.py'»‘»‘;f = getattr(tokenize, ‘»‘»‘open'»‘»‘, open)(__file__) if os.path.exists(__file__) else io.StringIO(‘»‘»‘from setuptools import setup; setup()'»‘»‘);code = f.read().replace(‘»‘»‘\r\n'»‘»‘, ‘»‘»‘\n'»‘»‘);f.close();exec(compile(code, __file__, ‘»‘»‘exec'»‘»‘))’ egg_info —egg-base ‘D:\Users\Моргенштерн\AppData\Local\Temp\pip-pip-egg-info-bexothid’
cwd: D:\Users\Моргенштерн\AppData\Local\Temp\pip-install-xxm4e8b9\turtle_b4a34253d5e146bb8a66d52189e73f1e\
Complete output (6 lines):
Traceback (most recent call last):
File «», line 1, in
File «D:\Users\Моргенштерн\AppData\Local\Temp\pip-install-xxm4e8b9\turtle_b4a34253d5e146bb8a66d52189e73f1e\setup.py», line 40
except ValueError, ve:
^
SyntaxError: invalid syntax
—————————————-
WARNING: Discarding https://files.pythonhosted.org/packages/ff/f0/21a4. (from https://pypi.org/simple/turtle/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Using cached turtle-0.0.1.tar.gz (10 kB)
Requirement already satisfied: PyYAML>=3.08 in d:\users\моргенштерн\appdata\local\programs\python\python39\lib\site-packages (from turtle) (5.4.1)
Using legacy ‘setup.py install’ for turtle, since package ‘wheel’ is not installed.
Installing collected packages: turtle
Running setup.py install for turtle . error
ERROR: Command errored out with exit status 1:
command: ‘d:\users\моргенштерн\appdata\local\programs\python\python39\python.exe’ -u -c ‘import io, os, sys, setuptools, tokenize; sys.argv[0] = ‘»‘»‘D:\\Users\\Моргенштерн\\AppData\\Local\\Temp\\pip-install-xxm4e8b9\\turtle_8d6401ce1f594f48b2e5149b178cfef8\\setup.py'»‘»‘; __file__='»‘»‘D:\\Users\\Моргенштерн\\AppData\\Local\\Temp\\pip-install-xxm4e8b9\\turtle_8d6401ce1f594f48b2e5149b178cfef8\\setup.py'»‘»‘;f = getattr(tokenize, ‘»‘»‘open'»‘»‘, open)(__file__) if os.path.exists(__file__) else io.StringIO(‘»‘»‘from setuptools import setup; setup()'»‘»‘);code = f.read().replace(‘»‘»‘\r\n'»‘»‘, ‘»‘»‘\n'»‘»‘);f.close();exec(compile(code, __file__, ‘»‘»‘exec'»‘»‘))’ install —record ‘D:\Users\Моргенштерн\AppData\Local\Temp\pip-record-yvhaijtc\install-record.txt’ —single-version-externally-managed —compile —install-headers ‘d:\users\моргенштерн\appdata\local\programs\python\python39\Include\turtle’
cwd: D:\Users\Моргенштерн\AppData\Local\Temp\pip-install-xxm4e8b9\turtle_8d6401ce1f594f48b2e5149b178cfef8\
Complete output (26 lines):
running install
running build
running build_py
creating build
creating build\lib
creating build\lib\turtle
copying turtle\config.py -> build\lib\turtle
copying turtle\engine.py -> build\lib\turtle
copying turtle\proxy.py -> build\lib\turtle
copying turtle\service.py -> build\lib\turtle
copying turtle\__init__.py -> build\lib\turtle
creating build\lib\turtle\test
copying turtle\test\test_engine.py -> build\lib\turtle\test
copying turtle\test\test_proxy.py -> build\lib\turtle\test
copying turtle\test\__init__.py -> build\lib\turtle\test
running install_lib
byte-compiling d:\users\моргенштерн\appdata\local\programs\python\python39\Lib\site-packages\turtle\service.py to service.cpython-39.pyc
File «d:\users\моргенштерн\appdata\local\programs\python\python39\Lib\site-packages\turtle\service.py», line 85
print traceback.format_exc()
^
SyntaxError: invalid syntaxwriting byte-compilation script ‘D:\Users\F737~1\AppData\Local\Temp\tmp6o8ehxk6.py’
d:\users\моргенштерн\appdata\local\programs\python\python39\python.exe D:\Users\F737~1\AppData\Local\Temp\tmp6o8ehxk6.py
SyntaxError: Non-UTF-8 code starting with ‘\xec’ in file D:\Users\F737~1\AppData\Local\Temp\tmp6o8ehxk6.py on line 3, but no encoding declared; see python.org/dev/peps/pep-0263 for details
error: command ‘d:\\users\\моргенштерн\\appdata\\local\\programs\\python\\python39\\python.exe’ failed with exit code 1
—————————————-
ERROR: Command errored out with exit status 1: ‘d:\users\моргенштерн\appdata\local\programs\python\python39\python.exe’ -u -c ‘import io, os, sys, setuptools, tokenize; sys.argv[0] = ‘»‘»‘D:\\Users\\Моргенштерн\\AppData\\Local\\Temp\\pip-install-xxm4e8b9\\turtle_8d6401ce1f594f48b2e5149b178cfef8\\setup.py'»‘»‘; __file__='»‘»‘D:\\Users\\Моргенштерн\\AppData\\Local\\Temp\\pip-install-xxm4e8b9\\turtle_8d6401ce1f594f48b2e5149b178cfef8\\setup.py'»‘»‘;f = getattr(tokenize, ‘»‘»‘open'»‘»‘, open)(__file__) if os.path.exists(__file__) else io.StringIO(‘»‘»‘from setuptools import setup; setup()'»‘»‘);code = f.read().replace(‘»‘»‘\r\n'»‘»‘, ‘»‘»‘\n'»‘»‘);f.close();exec(compile(code, __file__, ‘»‘»‘exec'»‘»‘))’ install —record ‘D:\Users\Моргенштерн\AppData\Local\Temp\pip-record-yvhaijtc\install-record.txt’ —single-version-externally-managed —compile —install-headers ‘d:\users\моргенштерн\appdata\local\programs\python\python39\Include\turtle’ Check the logs for full command output.- Вопрос задан более двух лет назад
- 656 просмотров