Документация Python неофициальный перевод

turtle.md

2415 строк · 114.0 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.13/library/turtle.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `turtle` – Черепашья графика89**Исходный код:** [Lib/turtle.py](https://python-all.ru/src/3.13/Lib/turtle.py)1011---1213## Введение1415Черепашья графика – это реализация [популярных инструментов геометрического рисования, впервые представленных в Logo](https://python-all.ru/3.13/library/turtle.html), разработанных Уолли Фёрзейгом, Сеймуром Пейпертом и Синтией Соломон в 1967 году.1617## Начало работы1819Представьте роботизированную черепашку, начинающую с точки (0, 0) на плоскости x-y. После `import turtle` дайте ей команду `turtle.forward(15)`, и она переместится (на экране!) на 15 пикселей в том направлении, куда смотрит, рисуя линию во время движения. Дайте ей команду `turtle.right(25)`, и она повернётся на месте на 25 градусов по часовой стрелке.2021Черепашья звезда2223Черепашка может рисовать сложные фигуры с помощью программ, повторяющих простые движения.2425![../_images/turtle-star.png](https://python-all.ru/3.13/_images/turtle-star.png)2627В Python черепашья графика предоставляет представление физической «черепашки» (маленького робота с пером), которая рисует на листе бумаги на полу.2829Это эффективный и проверенный способ для учащихся знакомиться с концепциями программирования и взаимодействием с программным обеспечением, поскольку он обеспечивает мгновенную видимую обратную связь. Он также предоставляет удобный доступ к графическому выводу в целом.3031Рисование с помощью черепашки было изначально создано как образовательный инструмент для использования учителями в классе. Для программиста, которому нужно получить некоторый графический вывод, это может быть способом сделать это без излишних сложностей, связанных с внедрением более сложных или внешних библиотек в свою работу.3233## Учебное руководство3435Здесь следует начать новым пользователям. В этом руководстве мы рассмотрим некоторые основы рисования с помощью черепашки.3637### Запуск среды черепашки3839В оболочке Python импортируйте все объекты модуля `turtle`:4041```python42from turtle import *43```4445Если вы столкнётесь с ошибкой `No module named '_tkinter'`, вам придётся установить [`Tk interface package`](https://python-all.ru/3.13/library/tkinter.html#module-tkinter) в вашу систему.4647### Основы рисования4849Отправьте черепашку вперёд на 100 шагов:5051```python52forward(100)53```5455Вы должны увидеть (скорее всего, в новом окне на вашем дисплее) линию, нарисованную черепашкой, направленную на восток. Измените направление черепашки так, чтобы она повернулась на 120 градусов влево (против часовой стрелки):5657```python58left(120)59```6061Давайте продолжим, нарисовав треугольник:6263```python64forward(100)65left(120)66forward(100)67```6869Обратите внимание, как черепашка, представленная стрелкой, указывает в разные направления по мере управления ею.7071Экспериментируйте с этими командами, а также с `backward()` и `right()`.7273#### Управление пером7475Попробуйте изменить цвет (например, `color('blue')`) и толщину линии (например, `width(3)`), а затем снова нарисуйте.7677Вы также можете перемещать черепашку без рисования, подняв перо: `up()` перед перемещением. Чтобы снова начать рисовать, используйте `down()`.7879#### Позиция черепашки8081Отправьте черепашку обратно в начальную точку (полезно, если она исчезла с экрана):8283```python84home()85```8687Домашняя позиция находится в центре экрана черепашки. Если вам когда-нибудь понадобится их узнать, получите x-y координаты черепашки с помощью:8889```python90pos()91```9293Дом находится в `(0, 0)`.9495И через некоторое время, вероятно, будет полезно очистить окно, чтобы начать заново:9697```python98clearscreen()99```100101### Создание алгоритмических узоров102103Используя циклы, можно построить геометрические узоры:104105```python106for steps in range(100):107    for c in ('blue', 'red', 'green'):108        color(c)109        forward(steps)110        right(30)111```112113– которые, конечно, ограничены только воображением!114115Нарисуем звезду в верхней части этой страницы. Линии – красные, заливка – жёлтая:116117```python118color('red')119fillcolor('yellow')120```121122Так же, как `up()` и `down()` определяют, будут ли рисоваться линии, заливку можно включать и выключать:123124```python125begin_fill()126```127128Далее создадим цикл:129130```python131while True:132    forward(200)133    left(170)134    if abs(pos()) < 1:135        break136```137138`abs(pos()) < 1` – хороший способ узнать, когда черепашка вернулась в исходное положение.139140Наконец, завершите заливку:141142```python143end_fill()144```145146(Обратите внимание: заливка фактически происходит только после команды `end_fill()`.)147148## Как…149150В этом разделе рассматриваются некоторые типичные варианты использования черепашьей графики и подходы к работе с ней.151152### Начать как можно быстрее153154Одно из удовольствий черепашьей графики – мгновенная визуальная обратная связь от простых команд. Это отличный способ познакомить детей с идеями программирования с минимальными усилиями (конечно, не только детей).155156Модуль turtle делает это возможным, предоставляя всю базовую функциональность в виде функций, доступных через `from turtle import *`. В [руководстве по черепашьей графике](https://python-all.ru/3.13/library/turtle.html#turtle-tutorial) описан этот подход.157158Стоит отметить, что многие команды черепашки имеют ещё более краткие эквиваленты, например `fd()` для [`forward()`](https://python-all.ru/3.13/library/turtle.html#turtle.forward). Они особенно полезны при работе с теми, кто ещё не освоил набор текста.159160> Для работы черепашьей графики необходимо, чтобы в системе был установлен [`Tk interface package`](https://python-all.ru/3.13/library/tkinter.html#module-tkinter). Имейте в виду, что это не всегда тривиально, поэтому проверьте заранее, если планируете использовать черепашью графику с учеником.161162### Использовать пространство имён модуля `turtle`163164Использовать `from turtle import *` удобно, но учтите: он импортирует довольно большое количество объектов, и если вы занимаетесь чем-то, кроме черепашьей графики, возникает риск конфликта имён (особенно если вы используете черепашью графику в скрипте, где могут импортироваться другие модули).165166Решение – использовать `import turtle`: `fd()` становится `turtle.fd()`, `width()` становится `turtle.width()` и так далее. (Если постоянно набирать «turtle» утомительно, используйте, например, `import turtle as t`.)167168### Использовать черепашью графику в скрипте169170Рекомендуется использовать пространство имён модуля `turtle`, как описано непосредственно выше, например:171172```python173import turtle as t174from random import random175176for i in range(100):177    steps = int(random() * 100)178    angle = int(random() * 360)179    t.right(angle)180    t.fd(steps)181```182183Однако требуется ещё один шаг: как только скрипт завершится, Python закроет окно черепашки. Добавьте:184185```python186t.mainloop()187```188189в конец скрипта. Теперь скрипт будет ждать завершения и не завершится, пока его не прервут, например, закрыв окно черепашьей графики.190191### Использовать объектно-ориентированную черепашью графику192193> **См. также**194>195> [Объяснение объектно-ориентированного интерфейса](https://python-all.ru/3.13/library/turtle.html#turtle-explanation)196197За исключением самых простых вводных целей или быстрого опробования, гораздо более привычно и эффективно использовать объектно-ориентированный подход к черепашьей графике. Например, это позволяет одновременно разместить на экране несколько черепашек.198199В этом подходе различные команды черепашки являются методами объектов (в основном объектов `Turtle`). *Можно* использовать объектно-ориентированный подход в оболочке, но чаще это делают в Python-скрипте.200201Тогда приведённый выше пример становится таким:202203```python204from turtle import Turtle205from random import random206207t = Turtle()208for i in range(100):209    steps = int(random() * 100)210    angle = int(random() * 360)211    t.right(angle)212    t.fd(steps)213214t.screen.mainloop()215```216217Обратите внимание на последнюю строку. `t.screen` – это экземпляр [`Screen`](https://python-all.ru/3.13/library/turtle.html#turtle.Screen), на котором существует экземпляр Turtle; он создаётся автоматически вместе с черепашкой.218219Экран черепашки можно настроить, например:220221```python222t.screen.title('Object-oriented turtle demo')223t.screen.bgcolor("orange")224```225226## Справочник по черепашьей графике227228> **Примечание**229>230> В следующей документации приведён список аргументов для функций. Методы, конечно, имеют дополнительный первый аргумент *self*, который здесь опущен.231232### Методы черепахи233234**Движение черепахи**235236**Перемещение и рисование**237238[`forward()`](https://python-all.ru/3.13/library/turtle.html#turtle.forward)239240|241242[`fd()`](https://python-all.ru/3.13/library/turtle.html#turtle.fd)243244[`backward()`](https://python-all.ru/3.13/library/turtle.html#turtle.backward)245246|247248[`bk()`](https://python-all.ru/3.13/library/turtle.html#turtle.bk)249250|251252[`back()`](https://python-all.ru/3.13/library/turtle.html#turtle.back)253254[`right()`](https://python-all.ru/3.13/library/turtle.html#turtle.right)255256|257258[`rt()`](https://python-all.ru/3.13/library/turtle.html#turtle.rt)259260[`left()`](https://python-all.ru/3.13/library/turtle.html#turtle.left)261262|263264[`lt()`](https://python-all.ru/3.13/library/turtle.html#turtle.lt)265266[`goto()`](https://python-all.ru/3.13/library/turtle.html#turtle.goto)267268|269270[`setpos()`](https://python-all.ru/3.13/library/turtle.html#turtle.setpos)271272|273274[`setposition()`](https://python-all.ru/3.13/library/turtle.html#turtle.setposition)275276[`teleport()`](https://python-all.ru/3.13/library/turtle.html#turtle.teleport)277278[`setx()`](https://python-all.ru/3.13/library/turtle.html#turtle.setx)279280[`sety()`](https://python-all.ru/3.13/library/turtle.html#turtle.sety)281282[`setheading()`](https://python-all.ru/3.13/library/turtle.html#turtle.setheading)283284|285286[`seth()`](https://python-all.ru/3.13/library/turtle.html#turtle.seth)287288[`home()`](https://python-all.ru/3.13/library/turtle.html#turtle.home)289290[`circle()`](https://python-all.ru/3.13/library/turtle.html#turtle.circle)291292[`dot()`](https://python-all.ru/3.13/library/turtle.html#turtle.dot)293294[`stamp()`](https://python-all.ru/3.13/library/turtle.html#turtle.stamp)295296[`clearstamp()`](https://python-all.ru/3.13/library/turtle.html#turtle.clearstamp)297298[`clearstamps()`](https://python-all.ru/3.13/library/turtle.html#turtle.clearstamps)299300[`undo()`](https://python-all.ru/3.13/library/turtle.html#turtle.undo)301302[`speed()`](https://python-all.ru/3.13/library/turtle.html#turtle.speed)303304**Состояние черепахи**305306[`position()`](https://python-all.ru/3.13/library/turtle.html#turtle.position)307308|309310[`pos()`](https://python-all.ru/3.13/library/turtle.html#turtle.pos)311312[`towards()`](https://python-all.ru/3.13/library/turtle.html#turtle.towards)313314[`xcor()`](https://python-all.ru/3.13/library/turtle.html#turtle.xcor)315316[`ycor()`](https://python-all.ru/3.13/library/turtle.html#turtle.ycor)317318[`heading()`](https://python-all.ru/3.13/library/turtle.html#turtle.heading)319320[`distance()`](https://python-all.ru/3.13/library/turtle.html#turtle.distance)321322**Настройка и измерение**323324[`degrees()`](https://python-all.ru/3.13/library/turtle.html#turtle.degrees)325326[`radians()`](https://python-all.ru/3.13/library/turtle.html#turtle.radians)327328**Управление пером**329330**Состояние рисования**331332[`pendown()`](https://python-all.ru/3.13/library/turtle.html#turtle.pendown)333334|335336[`pd()`](https://python-all.ru/3.13/library/turtle.html#turtle.pd)337338|339340[`down()`](https://python-all.ru/3.13/library/turtle.html#turtle.down)341342[`penup()`](https://python-all.ru/3.13/library/turtle.html#turtle.penup)343344|345346[`pu()`](https://python-all.ru/3.13/library/turtle.html#turtle.pu)347348|349350[`up()`](https://python-all.ru/3.13/library/turtle.html#turtle.up)351352[`pensize()`](https://python-all.ru/3.13/library/turtle.html#turtle.pensize)353354|355356[`width()`](https://python-all.ru/3.13/library/turtle.html#turtle.width)357358[`pen()`](https://python-all.ru/3.13/library/turtle.html#turtle.pen)359360[`isdown()`](https://python-all.ru/3.13/library/turtle.html#turtle.isdown)361362**Управление цветом**363364[`color()`](https://python-all.ru/3.13/library/turtle.html#turtle.color)365366[`pencolor()`](https://python-all.ru/3.13/library/turtle.html#turtle.pencolor)367368[`fillcolor()`](https://python-all.ru/3.13/library/turtle.html#turtle.fillcolor)369370**Заливка**371372[`filling()`](https://python-all.ru/3.13/library/turtle.html#turtle.filling)373374[`begin_fill()`](https://python-all.ru/3.13/library/turtle.html#turtle.begin_fill)375376[`end_fill()`](https://python-all.ru/3.13/library/turtle.html#turtle.end_fill)377378**Дополнительное управление рисованием**379380[`reset()`](https://python-all.ru/3.13/library/turtle.html#turtle.reset)381382[`clear()`](https://python-all.ru/3.13/library/turtle.html#turtle.clear)383384[`write()`](https://python-all.ru/3.13/library/turtle.html#turtle.write)385386**Состояние черепахи**387388**Видимость**389390[`showturtle()`](https://python-all.ru/3.13/library/turtle.html#turtle.showturtle)391392|393394[`st()`](https://python-all.ru/3.13/library/turtle.html#turtle.st)395396[`hideturtle()`](https://python-all.ru/3.13/library/turtle.html#turtle.hideturtle)397398|399400[`ht()`](https://python-all.ru/3.13/library/turtle.html#turtle.ht)401402[`isvisible()`](https://python-all.ru/3.13/library/turtle.html#turtle.isvisible)403404**Внешний вид**405406[`shape()`](https://python-all.ru/3.13/library/turtle.html#turtle.shape)407408[`resizemode()`](https://python-all.ru/3.13/library/turtle.html#turtle.resizemode)409410[`shapesize()`](https://python-all.ru/3.13/library/turtle.html#turtle.shapesize)411412|413414[`turtlesize()`](https://python-all.ru/3.13/library/turtle.html#turtle.turtlesize)415416[`shearfactor()`](https://python-all.ru/3.13/library/turtle.html#turtle.shearfactor)417418[`tiltangle()`](https://python-all.ru/3.13/library/turtle.html#turtle.tiltangle)419420[`tilt()`](https://python-all.ru/3.13/library/turtle.html#turtle.tilt)421422[`shapetransform()`](https://python-all.ru/3.13/library/turtle.html#turtle.shapetransform)423424[`get_shapepoly()`](https://python-all.ru/3.13/library/turtle.html#turtle.get_shapepoly)425426**Использование событий**427428[`onclick()`](https://python-all.ru/3.13/library/turtle.html#turtle.onclick)429430[`onrelease()`](https://python-all.ru/3.13/library/turtle.html#turtle.onrelease)431432[`ondrag()`](https://python-all.ru/3.13/library/turtle.html#turtle.ondrag)433434**Специальные методы черепахи**435436[`begin_poly()`](https://python-all.ru/3.13/library/turtle.html#turtle.begin_poly)437438[`end_poly()`](https://python-all.ru/3.13/library/turtle.html#turtle.end_poly)439440[`get_poly()`](https://python-all.ru/3.13/library/turtle.html#turtle.get_poly)441442[`clone()`](https://python-all.ru/3.13/library/turtle.html#turtle.clone)443444[`getturtle()`](https://python-all.ru/3.13/library/turtle.html#turtle.getturtle)445446|447448[`getpen()`](https://python-all.ru/3.13/library/turtle.html#turtle.getpen)449450[`getscreen()`](https://python-all.ru/3.13/library/turtle.html#turtle.getscreen)451452[`setundobuffer()`](https://python-all.ru/3.13/library/turtle.html#turtle.setundobuffer)453454[`undobufferentries()`](https://python-all.ru/3.13/library/turtle.html#turtle.undobufferentries)455456### Методы TurtleScreen/Screen457458**Управление окном**459460[`bgcolor()`](https://python-all.ru/3.13/library/turtle.html#turtle.bgcolor)461462[`bgpic()`](https://python-all.ru/3.13/library/turtle.html#turtle.bgpic)463464[`clearscreen()`](https://python-all.ru/3.13/library/turtle.html#turtle.clearscreen)465466[`resetscreen()`](https://python-all.ru/3.13/library/turtle.html#turtle.resetscreen)467468[`screensize()`](https://python-all.ru/3.13/library/turtle.html#turtle.screensize)469470[`setworldcoordinates()`](https://python-all.ru/3.13/library/turtle.html#turtle.setworldcoordinates)471472**Управление анимацией**473474[`delay()`](https://python-all.ru/3.13/library/turtle.html#turtle.delay)475476[`tracer()`](https://python-all.ru/3.13/library/turtle.html#turtle.tracer)477478[`update()`](https://python-all.ru/3.13/library/turtle.html#turtle.update)479480**Использование событий экрана**481482[`listen()`](https://python-all.ru/3.13/library/turtle.html#turtle.listen)483484[`onkey()`](https://python-all.ru/3.13/library/turtle.html#turtle.onkey)485486|487488[`onkeyrelease()`](https://python-all.ru/3.13/library/turtle.html#turtle.onkeyrelease)489490[`onkeypress()`](https://python-all.ru/3.13/library/turtle.html#turtle.onkeypress)491492[`onclick()`](https://python-all.ru/3.13/library/turtle.html#turtle.onclick)493494|495496[`onscreenclick()`](https://python-all.ru/3.13/library/turtle.html#turtle.onscreenclick)497498[`ontimer()`](https://python-all.ru/3.13/library/turtle.html#turtle.ontimer)499500[`mainloop()`](https://python-all.ru/3.13/library/turtle.html#turtle.mainloop)501502|503504[`done()`](https://python-all.ru/3.13/library/turtle.html#turtle.done)505506**Настройки и специальные методы**507508[`mode()`](https://python-all.ru/3.13/library/turtle.html#turtle.mode)509510[`colormode()`](https://python-all.ru/3.13/library/turtle.html#turtle.colormode)511512[`getcanvas()`](https://python-all.ru/3.13/library/turtle.html#turtle.getcanvas)513514[`getshapes()`](https://python-all.ru/3.13/library/turtle.html#turtle.getshapes)515516[`register_shape()`](https://python-all.ru/3.13/library/turtle.html#turtle.register_shape)517518|519520[`addshape()`](https://python-all.ru/3.13/library/turtle.html#turtle.addshape)521522[`turtles()`](https://python-all.ru/3.13/library/turtle.html#turtle.turtles)523524[`window_height()`](https://python-all.ru/3.13/library/turtle.html#turtle.window_height)525526[`window_width()`](https://python-all.ru/3.13/library/turtle.html#turtle.window_width)527528**Методы ввода**529530[`textinput()`](https://python-all.ru/3.13/library/turtle.html#turtle.textinput)531532[`numinput()`](https://python-all.ru/3.13/library/turtle.html#turtle.numinput)533534**Методы, специфичные для Screen**535536[`bye()`](https://python-all.ru/3.13/library/turtle.html#turtle.bye)537538[`exitonclick()`](https://python-all.ru/3.13/library/turtle.html#turtle.exitonclick)539540[`setup()`](https://python-all.ru/3.13/library/turtle.html#turtle.setup)541542[`title()`](https://python-all.ru/3.13/library/turtle.html#turtle.title)543544## Методы RawTurtle/Turtle и соответствующие функции545546Большинство примеров в этом разделе ссылаются на экземпляр Turtle с именем `turtle`.547548### Движение черепахи549550#### `turtle.forward(distance)`551552#### `turtle.fd(distance)`553554**Параметры:**555556**distance** – число (целое или с плавающей запятой)557558Перемещает черепаху вперед на указанное *distance*, в направлении, в котором черепаха смотрит.559560```pycon561>>> turtle.position()562(0.00,0.00)563>>> turtle.forward(25)564>>> turtle.position()565(25.00,0.00)566>>> turtle.forward(-75)567>>> turtle.position()568(-50.00,0.00)569```570571#### `turtle.back(distance)`572573#### `turtle.bk(distance)`574575#### `turtle.backward(distance)`576577**Параметры:**578579**distance** – число580581Перемещает черепаху назад на *расстояние*, противоположно направлению, в котором черепаха смотрит. Направление черепахи не меняется.582583```pycon584>>> turtle.position()585(0.00,0.00)586>>> turtle.backward(30)587>>> turtle.position()588(-30.00,0.00)589```590591#### `turtle.right(angle)`592593#### `turtle.rt(angle)`594595**Параметры:**596597**angle** – число (целое или с плавающей запятой)598599Поворачивает черепаху вправо на *angle* единиц. (По умолчанию единицы – градусы, но их можно изменить с помощью функций [`degrees()`](https://python-all.ru/3.13/library/turtle.html#turtle.degrees) и [`radians()`](https://python-all.ru/3.13/library/turtle.html#turtle.radians).) Направление поворота зависит от режима черепахи, см. [`mode()`](https://python-all.ru/3.13/library/turtle.html#turtle.mode).600601```pycon602>>> turtle.heading()60322.0604>>> turtle.right(45)605>>> turtle.heading()606337.0607```608609#### `turtle.left(angle)`610611#### `turtle.lt(angle)`612613**Параметры:**614615**angle** – число (целое или с плавающей запятой)616617Поворачивает черепаху влево на *angle* единиц. (По умолчанию единицы – градусы, но их можно изменить с помощью функций [`degrees()`](https://python-all.ru/3.13/library/turtle.html#turtle.degrees) и [`radians()`](https://python-all.ru/3.13/library/turtle.html#turtle.radians).) Направление поворота зависит от режима черепахи, см. [`mode()`](https://python-all.ru/3.13/library/turtle.html#turtle.mode).618619```pycon620>>> turtle.heading()62122.0622>>> turtle.left(45)623>>> turtle.heading()62467.0625```626627#### `turtle.goto(x, y=None)`628629#### `turtle.setpos(x, y=None)`630631#### `turtle.setposition(x, y=None)`632633**Параметры:**634635- **x** – число или пара/вектор чисел636- **y** – число или `None`637638Если *y* равно `None`, то *x* должно быть парой координат или [`Vec2D`](https://python-all.ru/3.13/library/turtle.html#turtle.Vec2D) (например, как возвращается функцией [`pos()`](https://python-all.ru/3.13/library/turtle.html#turtle.pos)).639640Перемещает черепаху в абсолютную позицию. Если перо опущено, рисует линию. Направление черепахи не меняется.641642```pycon643>>> tp = turtle.pos()644>>> tp645(0.00,0.00)646>>> turtle.setpos(60,30)647>>> turtle.pos()648(60.00,30.00)649>>> turtle.setpos((20,80))650>>> turtle.pos()651(20.00,80.00)652>>> turtle.setpos(tp)653>>> turtle.pos()654(0.00,0.00)655```656657#### `turtle.teleport(x, y=None, *, fill_gap=False)`658659**Параметры:**660661- **x** – число или `None`662- **y** – число или `None`663- **fill\_gap** – логическое значение664665Перемещает черепаху в абсолютную позицию. В отличие от goto(x, y), линия не рисуется. Направление черепахи не меняется. Если в данный момент выполняется заливка, многоугольник(и), из которого телепортировали, будут залиты после выхода, и заливка начнется снова после телепортации. Это можно отключить с помощью fill\_gap=True, что делает воображаемую линию, пройденную во время телепортации, барьером заливки, как в goto(x, y).666667```pycon668>>> tp = turtle.pos()669>>> tp670(0.00,0.00)671>>> turtle.teleport(60)672>>> turtle.pos()673(60.00,0.00)674>>> turtle.teleport(y=10)675>>> turtle.pos()676(60.00,10.00)677>>> turtle.teleport(20, 30)678>>> turtle.pos()679(20.00,30.00)680```681682Добавлено в версии 3.12.683684#### `turtle.setx(x)`685686**Параметры:**687688**x** – число (целое или с плавающей запятой)689690Устанавливает первую координату черепахи в *x*, вторая координата остается без изменений.691692```pycon693>>> turtle.position()694(0.00,240.00)695>>> turtle.setx(10)696>>> turtle.position()697(10.00,240.00)698```699700#### `turtle.sety(y)`701702**Параметры:**703704**y** – число (целое или с плавающей запятой)705706Устанавливает вторую координату черепахи в *y*, первая координата остается без изменений.707708```pycon709>>> turtle.position()710(0.00,40.00)711>>> turtle.sety(-10)712>>> turtle.position()713(0.00,-10.00)714```715716#### `turtle.setheading(to_angle)`717718#### `turtle.seth(to_angle)`719720**Параметры:**721722**to\_angle** – число (целое или с плавающей запятой)723724Устанавливает направление черепахи в *to\_angle*. Вот некоторые распространенные направления в градусах:725726| стандартный режим | режим Logo |727| --- | --- |728| 0 – восток | 0 – север |729| 90 – север | 90 – восток |730| 180 – запад | 180 – юг |731| 270 – юг | 270 – запад |732733```pycon734>>> turtle.setheading(90)735>>> turtle.heading()73690.0737```738739#### `turtle.home()`740741Перемещает черепаху в начало координат – (0,0) – и устанавливает её направление в начальную ориентацию (зависит от режима, см. [`mode()`](https://python-all.ru/3.13/library/turtle.html#turtle.mode)).742743```pycon744>>> turtle.heading()74590.0746>>> turtle.position()747(0.00,-10.00)748>>> turtle.home()749>>> turtle.position()750(0.00,0.00)751>>> turtle.heading()7520.0753```754755#### `turtle.circle(radius, extent=None, steps=None)`756757**Параметры:**758759- **radius** – число760- **extent** – число (или `None`)761- **steps** – целое число (или `None`)762763Рисует окружность с заданным *radius*. Центр находится на *radius* единиц левее черепахи; *extent* – угол – определяет, какая часть окружности рисуется. Если *extent* не указан, рисуется вся окружность. Если *extent* не является полной окружностью, одна из конечных точек дуги – это текущее положение пера. Дуга рисуется против часовой стрелки, если *radius* положительный, и по часовой стрелке в противном случае. В конце направление черепахи изменяется на величину *extent*.764765Поскольку окружность аппроксимируется вписанным правильным многоугольником, *steps* определяет количество используемых шагов. Если не указано, вычисляется автоматически. Может использоваться для рисования правильных многоугольников.766767```pycon768>>> turtle.home()769>>> turtle.position()770(0.00,0.00)771>>> turtle.heading()7720.0773>>> turtle.circle(50)774>>> turtle.position()775(-0.00,0.00)776>>> turtle.heading()7770.0778>>> turtle.circle(120, 180)  # нарисовать полуокружность779>>> turtle.position()780(0.00,240.00)781>>> turtle.heading()782180.0783```784785#### `turtle.dot()`786787#### `turtle.dot(size)`788789#### `turtle.dot(color, /)`790791#### `turtle.dot(size, color, /)`792793#### `turtle.dot(size, r, g, b, /)`794795**Параметры:**796797- **size** – целое число \>= 1 (если указано)798- **color** – строка цвета или кортеж числовых цветов799800Рисует круглую точку диаметром *size*, используя *color*. Если *size* не указан, используется максимум из `pensize+4` и `2*pensize`.801802```pycon803>>> turtle.home()804>>> turtle.dot()805>>> turtle.fd(50); turtle.dot(20, "blue"); turtle.fd(50)806>>> turtle.position()807(100.00,-0.00)808>>> turtle.heading()8090.0810```811812#### `turtle.stamp()`813814Наносит копию формы черепахи на холст в текущей позиции черепахи. Возвращает stamp\_id для этой печати, который можно использовать для её удаления вызовом `clearstamp(stamp_id)`.815816```pycon817>>> turtle.color("blue")818>>> stamp_id = turtle.stamp()819>>> turtle.fd(50)820```821822#### `turtle.clearstamp(stampid)`823824**Параметры:**825826**stampid** – целое число, должно быть возвращаемым значением предыдущего вызова [`stamp()`](https://python-all.ru/3.13/library/turtle.html#turtle.stamp)827828Удаляет печать с заданным *stampid*.829830```pycon831>>> turtle.position()832(150.00,-0.00)833>>> turtle.color("blue")834>>> astamp = turtle.stamp()835>>> turtle.fd(50)836>>> turtle.position()837(200.00,-0.00)838>>> turtle.clearstamp(astamp)839>>> turtle.position()840(200.00,-0.00)841```842843#### `turtle.clearstamps(n=None)`844845**Параметры:**846847**n** – целое число (или `None`)848849Удаляет все или первые/последние *n* отпечатков черепашки. Если *n* равно `None`, удаляет все отпечатки, если *n* \> 0, удаляет первые *n* отпечатков, а если *n* \< 0, удаляет последние *n* отпечатков.850851```pycon852>>> for i in range(8):853...     unused_stamp_id = turtle.stamp()854...     turtle.fd(30)855>>> turtle.clearstamps(2)856>>> turtle.clearstamps(-2)857>>> turtle.clearstamps()858```859860#### `turtle.undo()`861862Отменяет (повторно) последнее(ие) действие(я) черепашки. Количество доступных действий отмены определяется размером буфера отмены.863864```pycon865>>> for i in range(4):866...     turtle.fd(50); turtle.lt(80)867...868>>> for i in range(8):869...     turtle.undo()870```871872#### `turtle.speed(speed=None)`873874**Параметры:**875876**speed** – целое число в диапазоне 0..10 или speedstring (см. ниже).877878Устанавливает скорость черепашки в целое значение от 0 до 10. Если аргумент не указан, возвращает текущую скорость.879880Если входное значение – число больше 10 или меньше 0.5, скорость устанавливается в 0. Speedstrings сопоставляются со значениями скорости следующим образом:881882- «самый быстрый»: 0883- «быстрый»: 10884- “обычная”: 6885- “медленная”: 3886- “самая медленная”: 1887888Скорости от 1 до 10 обеспечивают всё более быструю анимацию рисования линий и поворотов черепашки.889890Внимание: *speed* = 0 означает, что *никакой* анимации не происходит. forward/back заставляют черепашку прыгать, а left/right заставляют черепашку мгновенно поворачиваться.891892```pycon893>>> turtle.speed()8943895>>> turtle.speed('normal')896>>> turtle.speed()8976898>>> turtle.speed(9)899>>> turtle.speed()9009901```902903### Состояние черепашки904905#### `turtle.position()`906907#### `turtle.pos()`908909Возвращает текущее положение черепашки (x,y) (в виде [`Vec2D`](https://python-all.ru/3.13/library/turtle.html#turtle.Vec2D) вектора).910911```pycon912>>> turtle.pos()913(440.00,-0.00)914```915916#### `turtle.towards(x, y=None)`917918**Параметры:**919920- **x** – число или пара/вектор чисел, или экземпляр черепашки921- **y** – число, если *x* – число, иначе `None`922923Возвращает угол между линией от положения черепашки до точки, указанной через (x,y), указанного вектора или другой черепашки. Это зависит от начальной ориентации черепашки, которая зависит от режима – “standard”/“world” или “logo”.924925```pycon926>>> turtle.goto(10, 10)927>>> turtle.towards(0,0)928225.0929```930931#### `turtle.xcor()`932933Возвращает x-координату черепашки.934935```pycon936>>> turtle.home()937>>> turtle.left(50)938>>> turtle.forward(100)939>>> turtle.pos()940(64.28,76.60)941>>> print(round(turtle.xcor(), 5))94264.27876943```944945#### `turtle.ycor()`946947Возвращает y-координату черепашки.948949```pycon950>>> turtle.home()951>>> turtle.left(60)952>>> turtle.forward(100)953>>> print(turtle.pos())954(50.00,86.60)955>>> print(round(turtle.ycor(), 5))95686.60254957```958959#### `turtle.heading()`960961Возвращает текущий курс черепашки (значение зависит от режима черепашки, см. [`mode()`](https://python-all.ru/3.13/library/turtle.html#turtle.mode)).962963```pycon964>>> turtle.home()965>>> turtle.left(67)966>>> turtle.heading()96767.0968```969970#### `turtle.distance(x, y=None)`971972**Параметры:**973974- **x** – число или пара/вектор чисел, или экземпляр черепашки975- **y** – число, если *x* – число, иначе `None`976977Возвращает расстояние от черепашки до точки (x,y), указанного вектора или указанной другой черепашки в единицах шага черепашки.978979```pycon980>>> turtle.home()981>>> turtle.distance(30,40)98250.0983>>> turtle.distance((30,40))98450.0985>>> joe = Turtle()986>>> joe.forward(77)987>>> turtle.distance(joe)98877.0989```990991### Настройки измерения992993#### `turtle.degrees(fullcircle=360.0)`994995**Параметры:**996997**fullcircle** – число998999Устанавливает единицы измерения углов, то есть задаёт количество «градусов» в полном обороте. Значение по умолчанию – 360 градусов.10001001```pycon1002>>> turtle.home()1003>>> turtle.left(90)1004>>> turtle.heading()100590.010061007>>> # Изменить единицу измерения угла на град (также известный как гон,1008>>> # град, или градиан, и равная 1/100 прямого угла.)1009>>> turtle.degrees(400.0)1010>>> turtle.heading()1011100.01012>>> turtle.degrees(360)1013>>> turtle.heading()101490.01015```10161017#### `turtle.radians()`10181019Устанавливает единицы измерения углов в радианах. Эквивалентно `degrees(2*math.pi)`.10201021```pycon1022>>> turtle.home()1023>>> turtle.left(90)1024>>> turtle.heading()102590.01026>>> turtle.radians()1027>>> turtle.heading()10281.57079632679489661029```10301031### Управление пером10321033#### Состояние рисования10341035#### `turtle.pendown()`10361037#### `turtle.pd()`10381039#### `turtle.down()`10401041Опускает перо – рисование при движении.10421043#### `turtle.penup()`10441045#### `turtle.pu()`10461047#### `turtle.up()`10481049Поднимает перо – при движении не рисует.10501051#### `turtle.pensize(width=None)`10521053#### `turtle.width(width=None)`10541055**Параметры:**10561057**width** – положительное число10581059Устанавливает толщину линии в *width* или возвращает её. Если для resizemode установлено «auto» и форма черепашки является многоугольником, этот многоугольник рисуется с такой же толщиной линии. Если аргумент не указан, возвращается текущая толщина пера.10601061```pycon1062>>> turtle.pensize()106311064>>> turtle.pensize(10)   # отсюда рисуются линии шириной 101065```10661067#### `turtle.pen(pen=None, **pendict)`10681069**Параметры:**10701071- **pen** – словарь, содержащий некоторые или все из перечисленных ниже ключей1072- **pendict** – один или несколько именованных аргументов, использующих перечисленные ниже ключи10731074Возвращает или устанавливает атрибуты пера в виде «словаря пера» со следующими парами ключ/значение:10751076- “отображается”: True/False1077- “перо опущено”: True/False1078- “цвет пера”: строка цвета или кортеж цвета1079- “цвет заливки”: строка цвета или кортеж цвета1080- “размер пера”: положительное число1081- “скорость”: число от 0 до 101082- “режим изменения размера”: “auto” or “user” or “noresize”1083- “коэффициент растяжения”: (положительное число, положительное число)1084- «outline»: положительное число1085- «tilt»: число10861087Этот словарь можно передать аргументом в последующий вызов `pen()`, чтобы восстановить предыдущее состояние пера. Кроме того, один или несколько из этих атрибутов можно указать как именованные аргументы. Это позволяет установить несколько атрибутов пера одной инструкцией.10881089```pycon1090>>> turtle.pen(fillcolor="black", pencolor="red", pensize=10)1091>>> sorted(turtle.pen().items())1092[('fillcolor', 'black'), ('outline', 1), ('pencolor', 'red'),1093 ('pendown', True), ('pensize', 10), ('resizemode', 'noresize'),1094 ('shearfactor', 0.0), ('shown', True), ('speed', 9),1095 ('stretchfactor', (1.0, 1.0)), ('tilt', 0.0)]1096>>> penstate=turtle.pen()1097>>> turtle.color("yellow", "")1098>>> turtle.penup()1099>>> sorted(turtle.pen().items())[:3]1100[('fillcolor', ''), ('outline', 1), ('pencolor', 'yellow')]1101>>> turtle.pen(penstate, fillcolor="green")1102>>> sorted(turtle.pen().items())[:3]1103[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]1104```11051106#### `turtle.isdown()`11071108Возвращает `True`, если перо опущено, и `False`, если поднято.11091110```pycon1111>>> turtle.penup()1112>>> turtle.isdown()1113False1114>>> turtle.pendown()1115>>> turtle.isdown()1116True1117```11181119#### Управление цветом11201121#### `turtle.pencolor()`11221123#### `turtle.pencolor(color, /)`11241125#### `turtle.pencolor(r, g, b, /)`11261127Возвращает или задаёт цвет пера.11281129Допускаются четыре формата ввода:11301131**`pencolor()`**11321133Возвращает текущий цвет пера в виде строки описания цвета или кортежа (см. пример). Может использоваться как аргумент для другого вызова color/pencolor/fillcolor/bgcolor.11341135**`pencolor(colorstring)`**11361137Задаёт цвет пера равным *colorstring*, строке описания цвета Tk, например, `"red"`, `"yellow"` или `"#33cc8c"`.11381139**`pencolor((r, g, b))`**11401141Задаёт цвет пера по цвету RGB, представленному кортежем из *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode, где colormode равен 1.0 или 255 (см. [`colormode()`](https://python-all.ru/3.13/library/turtle.html#turtle.colormode)).11421143**`pencolor(r, g, b)`**11441145Задаёт цвет пера по цвету RGB, заданному *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode.11461147Если форма черепахи (turtleshape) является многоугольником, то контур этого многоугольника рисуется вновь заданным цветом пера.11481149```pycon1150>>> colormode()11511.01152>>> turtle.pencolor()1153'red'1154>>> turtle.pencolor("brown")1155>>> turtle.pencolor()1156'brown'1157>>> tup = (0.2, 0.8, 0.55)1158>>> turtle.pencolor(tup)1159>>> turtle.pencolor()1160(0.2, 0.8, 0.5490196078431373)1161>>> colormode(255)1162>>> turtle.pencolor()1163(51.0, 204.0, 140.0)1164>>> turtle.pencolor('#32c18f')1165>>> turtle.pencolor()1166(50.0, 193.0, 143.0)1167```11681169#### `turtle.fillcolor()`11701171#### `turtle.fillcolor(color, /)`11721173#### `turtle.fillcolor(r, g, b, /)`11741175Возвращает или задаёт цвет заливки.11761177Допускаются четыре формата ввода:11781179**`fillcolor()`**11801181Возвращает текущий цвет заливки в виде строки описания цвета, возможно в формате кортежа (см. пример). Может использоваться как аргумент для другого вызова color/pencolor/fillcolor/bgcolor.11821183**`fillcolor(colorstring)`**11841185Задаёт цвет заливки равным *colorstring*, строке описания цвета Tk, например, `"red"`, `"yellow"` или `"#33cc8c"`.11861187**`fillcolor((r, g, b))`**11881189Задаёт цвет заливки по цвету RGB, представленному кортежем из *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode, где colormode равен 1.0 или 255 (см. [`colormode()`](https://python-all.ru/3.13/library/turtle.html#turtle.colormode)).11901191**`fillcolor(r, g, b)`**11921193Задаёт цвет заливки по цвету RGB, заданному *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode.11941195Если форма черепахи (turtleshape) является многоугольником, то внутренняя область этого многоугольника закрашивается вновь заданным цветом заливки.11961197```pycon1198>>> turtle.fillcolor("violet")1199>>> turtle.fillcolor()1200'violet'1201>>> turtle.pencolor()1202(50.0, 193.0, 143.0)1203>>> turtle.fillcolor((50, 193, 143))  # Целые числа, не числа с плавающей точкой1204>>> turtle.fillcolor()1205(50.0, 193.0, 143.0)1206>>> turtle.fillcolor('#ffffff')1207>>> turtle.fillcolor()1208(255.0, 255.0, 255.0)1209```12101211#### `turtle.color()`12121213#### `turtle.color(color, /)`12141215#### `turtle.color(r, g, b, /)`12161217#### `turtle.color(pencolor, fillcolor, /)`12181219Возвращает или задаёт цвет пера и цвет заливки.12201221Допускается несколько форматов ввода. Они используют от 0 до 3 аргументов следующим образом:12221223**`color()`**12241225Возвращает текущий цвет пера и текущий цвет заливки в виде пары строк или кортежей с описанием цвета, как в [`pencolor()`](https://python-all.ru/3.13/library/turtle.html#turtle.pencolor) и [`fillcolor()`](https://python-all.ru/3.13/library/turtle.html#turtle.fillcolor).12261227**`color(colorstring)`, `color((r,g,b))`, `color(r,g,b)`**12281229Аргументы как в [`pencolor()`](https://python-all.ru/3.13/library/turtle.html#turtle.pencolor); устанавливает и fillcolor, и pencolor в указанное значение.12301231**`color(colorstring1, colorstring2)`, `color((r1,g1,b1), (r2,g2,b2))`**12321233Эквивалентно `pencolor(colorstring1)` и `fillcolor(colorstring2)`, а также аналогично при использовании другого формата ввода.12341235Если форма черепахи – многоугольник, его контур и внутренняя область рисуются новыми установленными цветами.12361237```pycon1238>>> turtle.color("red", "green")1239>>> turtle.color()1240('red', 'green')1241>>> color("#285078", "#a0c8f0")1242>>> color()1243((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))1244```12451246См. также: метод Screen [`colormode()`](https://python-all.ru/3.13/library/turtle.html#turtle.colormode).12471248#### Заливка12491250#### `turtle.filling()`12511252Возвращает состояние заливки (`True`, если заливка активна, иначе `False`).12531254```pycon1255>>> turtle.begin_fill()1256>>> if turtle.filling():1257...    turtle.pensize(5)1258... else:1259...    turtle.pensize(3)1260```12611262#### `turtle.begin_fill()`12631264Вызывается непосредственно перед рисованием фигуры, которую нужно залить.12651266#### `turtle.end_fill()`12671268Заливает фигуру, нарисованную после последнего вызова [`begin_fill()`](https://python-all.ru/3.13/library/turtle.html#turtle.begin_fill).12691270Будут ли залиты области пересечения для самопересекающихся многоугольников или нескольких фигур, зависит от графической подсистемы операционной системы, типа пересечения и количества пересечений. Например, звезда черепахи выше может быть либо полностью жёлтой, либо содержать белые области.12711272```pycon1273>>> turtle.color("black", "red")1274>>> turtle.begin_fill()1275>>> turtle.circle(80)1276>>> turtle.end_fill()1277```12781279#### Дополнительное управление рисованием12801281#### `turtle.reset()`12821283Удаляет рисунки черепахи с экрана, перемещает черепаху в центр и сбрасывает переменные в значения по умолчанию.12841285```pycon1286>>> turtle.goto(0,-22)1287>>> turtle.left(100)1288>>> turtle.position()1289(0.00,-22.00)1290>>> turtle.heading()1291100.01292>>> turtle.reset()1293>>> turtle.position()1294(0.00,0.00)1295>>> turtle.heading()12960.01297```12981299#### `turtle.clear()`13001301Удаляет рисунки черепахи с экрана. Черепаха не перемещается. Состояние и положение черепахи, а также рисунки других черепах не затрагиваются.13021303#### `turtle.write(arg, move=False, align='left', font=('Arial', 8, 'normal'))`13041305**Параметры:**13061307- **arg** – объект, который будет записан на TurtleScreen.1308- **move** – True/False1309- **align** – одна из строк: «left», «center» или «right».1310- **font** – тройка (имя\_шрифта, размер\_шрифта, тип\_шрифта)13111312Записывает текст (строковое представление *arg*) в текущей позиции черепахи в соответствии с выравниванием *align* («left», «center» или «right») и указанным шрифтом. Если *move* истинно, перо перемещается в правый нижний угол текста. По умолчанию *move* равно `False`.13131314```python1315>>> turtle.write("Home = ", True, align="center")1316>>> turtle.write((0,0), True)1317```13181319### Состояние черепахи13201321#### Видимость13221323#### `turtle.hideturtle()`13241325#### `turtle.ht()`13261327Делает черепаху невидимой. Рекомендуется делать это во время выполнения сложного рисунка, потому что скрытие черепахи заметно ускоряет рисование.13281329```pycon1330>>> turtle.hideturtle()1331```13321333#### `turtle.showturtle()`13341335#### `turtle.st()`13361337Делает черепаху видимой.13381339```pycon1340>>> turtle.showturtle()1341```13421343#### `turtle.isvisible()`13441345Возвращает `True`, если черепаха показана, и `False`, если она скрыта.13461347```python1348>>> turtle.hideturtle()1349>>> turtle.isvisible()1350False1351>>> turtle.showturtle()1352>>> turtle.isvisible()1353True1354```13551356#### Внешний вид13571358#### `turtle.shape(name=None)`13591360**Параметры:**13611362**name** – a string which is a valid shapename13631364Устанавливает форму черепахи как форму с заданным *name* или, если имя не указано, возвращает имя текущей формы. Форма с именем *name* должна существовать в словаре форм TurtleScreen. Изначально доступны следующие многоугольные формы: «стрелка», «черепаха», «круг», «квадрат», «треугольник», «классическая». Чтобы узнать, как работать с формами, см. метод Screen [`register_shape()`](https://python-all.ru/3.13/library/turtle.html#turtle.register_shape).13651366```pycon1367>>> turtle.shape()1368'classic'1369>>> turtle.shape("turtle")1370>>> turtle.shape()1371'turtle'1372```13731374#### `turtle.resizemode(rmode=None)`13751376**Параметры:**13771378**rmode** – one of the strings “auto”, “user”, “noresize”13791380Устанавливает режим изменения размера в одно из значений: «авто», «пользователь», «без изменения размера». Если *rmode* не указан, возвращает текущий режим изменения размера. Разные режимы изменения размера имеют следующие эффекты:13811382- “auto”: adapts the appearance of the turtle corresponding to the value of pensize.1383- “user”: adapts the appearance of the turtle according to the values of stretchfactor and outlinewidth (outline), which are set by [`shapesize()`](https://python-all.ru/3.13/library/turtle.html#turtle.shapesize).1384- «без изменения размера»: адаптация внешнего вида черепахи не производится.13851386`resizemode("user")` вызывается [`shapesize()`](https://python-all.ru/3.13/library/turtle.html#turtle.shapesize) при использовании с аргументами.13871388```pycon1389>>> turtle.resizemode()1390'noresize'1391>>> turtle.resizemode("auto")1392>>> turtle.resizemode()1393'auto'1394```13951396#### `turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None)`13971398#### `turtle.turtlesize(stretch_wid=None, stretch_len=None, outline=None)`13991400**Параметры:**14011402- **stretch\_wid** – положительное число1403- **stretch\_len** – положительное число1404- **outline** – положительное число14051406Возвращает или задаёт атрибуты пера: коэффициенты растяжения по x/y и/или контур. Устанавливает режим изменения размера в «пользователь». Если и только если режим изменения размера установлен в «пользователь», черепаха будет отображаться растянутой в соответствии с её коэффициентами растяжения: *stretch\_wid* – коэффициент растяжения перпендикулярно её ориентации, *stretch\_len* – коэффициент растяжения в направлении её ориентации, *outline* определяет ширину контура формы.14071408```pycon1409>>> turtle.shapesize()1410(1.0, 1.0, 1)1411>>> turtle.resizemode("user")1412>>> turtle.shapesize(5, 5, 12)1413>>> turtle.shapesize()1414(5, 5, 12)1415>>> turtle.shapesize(outline=8)1416>>> turtle.shapesize()1417(5, 5, 8)1418```14191420#### `turtle.shearfactor(shear=None)`14211422**Параметры:**14231424**shear** – число (необязательно)14251426Set or return the current shearfactor. Shear the turtleshape according to the given shearfactor shear, which is the tangent of the shear angle. Do *not* change the turtle’s heading (direction of movement). If shear is not given: return the current shearfactor, i. e. the tangent of the shear angle, by which lines parallel to the heading of the turtle are sheared.14271428```pycon1429>>> turtle.shape("circle")1430>>> turtle.shapesize(5,2)1431>>> turtle.shearfactor(0.5)1432>>> turtle.shearfactor()14330.51434```14351436#### `turtle.tilt(angle)`14371438**Параметры:**14391440**angle** – a number14411442Повернуть форму черепахи на *angle* от текущего угла наклона, но *не* изменять направление черепахи (направление движения).14431444```pycon1445>>> turtle.reset()1446>>> turtle.shape("circle")1447>>> turtle.shapesize(5,2)1448>>> turtle.tilt(30)1449>>> turtle.fd(50)1450>>> turtle.tilt(30)1451>>> turtle.fd(50)1452```14531454#### `turtle.tiltangle(angle=None)`14551456**Параметры:**14571458**angle** – число (необязательно)14591460Устанавливает или возвращает текущий угол наклона. Если задан угол, поворачивает форму черепахи, чтобы она указывала в направлении, заданном углом, независимо от текущего угла наклона, но *не* изменять направление черепахи (направление движения). Если угол не задан: возвращает текущий угол наклона, то есть угол между ориентацией формы черепахи и направлением черепахи (её направлением движения).14611462```pycon1463>>> turtle.reset()1464>>> turtle.shape("circle")1465>>> turtle.shapesize(5,2)1466>>> turtle.tilt(45)1467>>> turtle.tiltangle()146845.01469```14701471#### `turtle.shapetransform(t11=None, t12=None, t21=None, t22=None)`14721473**Параметры:**14741475- **t11** – число (необязательно)1476- **t12** – число (необязательно)1477- **t21** – число (необязательно)1478- **t12** – число (необязательно)14791480Задаёт или возвращает текущую матрицу преобразования формы черепашки.14811482Если ни один из элементов матрицы не задан, возвращает матрицу преобразования в виде кортежа из 4 элементов. В противном случае задаёт указанные элементы и преобразует форму черепашки согласно матрице, состоящей из первой строки t11, t12 и второй строки t21, t22. Определитель t11 \* t22 - t12 \* t21 не должен быть равен нулю, иначе будет вызвана ошибка. Изменяет stretchfactor, shearfactor и tiltangle в соответствии с заданной матрицей.14831484```pycon1485>>> turtle = Turtle()1486>>> turtle.shape("square")1487>>> turtle.shapesize(4,2)1488>>> turtle.shearfactor(-0.5)1489>>> turtle.shapetransform()1490(4.0, -1.0, -0.0, 2.0)1491```14921493#### `turtle.get_shapepoly()`14941495Возвращает текущий многоугольник формы в виде кортежа пар координат. Это можно использовать для определения новой формы или компонентов составной формы.14961497```pycon1498>>> turtle.shape("square")1499>>> turtle.shapetransform(4, -1, 0, 2)1500>>> turtle.get_shapepoly()1501((50, -20), (30, 20), (-50, 20), (-30, -20))1502```15031504### Использование событий15051506#### `turtle.onclick(fun, btn=1, add=None)`15071508**Параметры:**15091510- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1511- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1512- **add**`True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку15131514Привязывает *fun* к событиям щелчка мыши на этой черепашке. Если *fun* равно `None`, существующие привязки удаляются. Пример для анонимной черепашки, т.е. процедурного способа:15151516```pycon1517>>> def turn(x, y):1518...     left(180)1519...1520>>> onclick(turn)  # Теперь щелчок по черепашке повернёт её.1521>>> onclick(None)  # привязка события будет удалена1522```15231524#### `turtle.onrelease(fun, btn=1, add=None)`15251526**Параметры:**15271528- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1529- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1530- **add**`True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку15311532Привязывает *fun* к событиям отпускания кнопки мыши на этой черепашке. Если *fun* равно `None`, существующие привязки удаляются.15331534```pycon1535>>> class MyTurtle(Turtle):1536...     def glow(self,x,y):1537...         self.fillcolor("red")1538...     def unglow(self,x,y):1539...         self.fillcolor("")1540...1541>>> turtle = MyTurtle()1542>>> turtle.onclick(turtle.glow)     # нажатие на черепашку меняет цвет заливки на красный,1543>>> turtle.onrelease(turtle.unglow) # отпускание делает его прозрачным.1544```15451546#### `turtle.ondrag(fun, btn=1, add=None)`15471548**Параметры:**15491550- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1551- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1552- **add**`True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку15531554Привязывает *fun* к событиям перемещения мыши на этой черепашке. Если *fun* равно `None`, существующие привязки удаляются.15551556Примечание: Каждая последовательность событий перемещения мыши на черепашке предваряется событием щелчка мыши на этой черепашке.15571558```pycon1559>>> turtle.ondrag(turtle.goto)1560```15611562После этого щелчок и перетаскивание черепашки будет перемещать её по экрану, создавая рисунки от руки (если перо опущено).15631564### Специальные методы черепашки15651566#### `turtle.begin_poly()`15671568Начинает запись вершин многоугольника. Текущая позиция черепашки является первой вершиной многоугольника.15691570#### `turtle.end_poly()`15711572Остановить запись вершин многоугольника. Текущая позиция черепашки – последняя вершина многоугольника. Она будет соединена с первой вершиной.15731574#### `turtle.get_poly()`15751576Возвращает последний записанный многоугольник.15771578```pycon1579>>> turtle.home()1580>>> turtle.begin_poly()1581>>> turtle.fd(100)1582>>> turtle.left(20)1583>>> turtle.fd(30)1584>>> turtle.left(60)1585>>> turtle.fd(50)1586>>> turtle.end_poly()1587>>> p = turtle.get_poly()1588>>> register_shape("myFavouriteShape", p)1589```15901591#### `turtle.clone()`15921593Создаёт и возвращает клон черепашки с теми же координатами, направлением и свойствами черепашки.15941595```pycon1596>>> mick = Turtle()1597>>> joe = mick.clone()1598```15991600#### `turtle.getturtle()`16011602#### `turtle.getpen()`16031604Возвращает сам объект Turtle. Единственное разумное применение – как функция для возврата «анонимной черепашки»:16051606```pycon1607>>> pet = getturtle()1608>>> pet.fd(50)1609>>> pet1610<turtle.Turtle object at 0x...>1611```16121613#### `turtle.getscreen()`16141615Возвращает объект [`TurtleScreen`](https://python-all.ru/3.13/library/turtle.html#turtle.TurtleScreen), на котором черепашка рисует. Затем для этого объекта можно вызывать методы TurtleScreen.16161617```pycon1618>>> ts = turtle.getscreen()1619>>> ts1620<turtle._Screen object at 0x...>1621>>> ts.bgcolor("pink")1622```16231624#### `turtle.setundobuffer(size)`16251626**Параметры:**16271628**size** – целое число или `None`16291630Устанавливает или отключает буфер отмены. Если *size* – целое число, создаётся пустой буфер отмены указанного размера. *size* задаёт максимальное количество действий черепашки, которые можно отменить с помощью метода/функции [`undo()`](https://python-all.ru/3.13/library/turtle.html#turtle.undo). Если *size* равно `None`, буфер отмены отключается.16311632```pycon1633>>> turtle.setundobuffer(42)1634```16351636#### `turtle.undobufferentries()`16371638Возвращает количество записей в буфере отмены.16391640```pycon1641>>> while undobufferentries():1642...     undo()1643```16441645### Составные фигуры16461647Для использования составных фигур черепашки, состоящих из нескольких многоугольников разного цвета, необходимо явно использовать вспомогательный класс [`Shape`](https://python-all.ru/3.13/library/turtle.html#turtle.Shape), как описано ниже:164816491. Создаёт пустой объект Shape типа «compound».16502. Добавьте в этот объект необходимое количество компонентов с помощью метода [`addcomponent()`](https://python-all.ru/3.13/library/turtle.html#turtle.Shape.addcomponent).16511652   Например:16531654   ```pycon1655   >>> s = Shape("compound")1656   >>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))1657   >>> s.addcomponent(poly1, "red", "blue")1658   >>> poly2 = ((0,0),(10,-5),(-10,-5))1659   >>> s.addcomponent(poly2, "blue", "red")1660   ```16613. Теперь добавьте Shape в список фигур экрана и используйте его:16621663   ```pycon1664   >>> register_shape("myshape", s)1665   >>> shape("myshape")1666   ```16671668> **Примечание**1669>1670> Класс [`Shape`](https://python-all.ru/3.13/library/turtle.html#turtle.Shape) используется внутри метода [`register_shape()`](https://python-all.ru/3.13/library/turtle.html#turtle.register_shape) разными способами. Разработчику приложения приходится иметь дело с классом Shape *только* при использовании составных фигур, как показано выше!16711672## Методы TurtleScreen/Screen и соответствующие функции16731674Большинство примеров в этом разделе относятся к экземпляру TurtleScreen с именем `screen`.16751676### Управление окном16771678#### `turtle.bgcolor()`16791680#### `turtle.bgcolor(color, /)`16811682#### `turtle.bgcolor(r, g, b, /)`16831684Возвращает или устанавливает цвет фона TurtleScreen.16851686Допускаются четыре формата ввода:16871688**`bgcolor()`**16891690Возвращает текущий цвет фона в виде строки спецификации цвета или кортежа (см. пример). Может использоваться как входные данные для другого вызова color/pencolor/fillcolor/bgcolor.16911692**`bgcolor(colorstring)`**16931694Устанавливает цвет фона в *colorstring*, строку спецификации цвета Tk, например `"red"`, `"yellow"` или `"#33cc8c"`.16951696**`bgcolor((r, g, b))`**16971698Устанавливает цвет фона в RGB-цвет, представленный кортежем *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode, где colormode равен 1.0 или 255 (см. [`colormode()`](https://python-all.ru/3.13/library/turtle.html#turtle.colormode)).16991700**`bgcolor(r, g, b)`**17011702Устанавливает цвет фона в RGB-цвет, представленный *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно находиться в диапазоне 0..colormode.17031704```pycon1705>>> screen.bgcolor("orange")1706>>> screen.bgcolor()1707'orange'1708>>> screen.bgcolor("#800080")1709>>> screen.bgcolor()1710(128.0, 0.0, 128.0)1711```17121713#### `turtle.bgpic(picname=None)`17141715**Параметры:**17161717**picname** – строка, имя gif-файла или `"nopic"`, или `None`17181719Устанавливает фоновое изображение или возвращает имя текущего фонового изображения. Если *picname* – имя файла, устанавливает соответствующее изображение как фон. Если *picname* равно `"nopic"`, удаляет фоновое изображение, если оно есть. Если *picname* равно `None`, возвращает имя файла текущего фонового изображения.17201721```python1722>>> screen.bgpic()1723'nopic'1724>>> screen.bgpic("landscape.gif")1725>>> screen.bgpic()1726"landscape.gif"1727```17281729#### `turtle.clear()`17301731> **Примечание**1732>1733> Этот метод TurtleScreen доступен как глобальная функция только под именем `clearscreen`. Глобальная функция `clear` – другая, производная от метода Turtle `clear`.17341735#### `turtle.clearscreen()`17361737Удаляет все рисунки и всех черепах с TurtleScreen. Сбрасывает теперь пустой TurtleScreen в исходное состояние: белый фон, без фонового изображения, без привязок событий и с включённой трассировкой.17381739#### `turtle.reset()`17401741> **Примечание**1742>1743> Этот метод TurtleScreen доступен как глобальная функция только под именем `resetscreen`. Глобальная функция `reset` – это другая, производная от метода Turtle `reset`.17441745#### `turtle.resetscreen()`17461747Сбрасывает всех черепах на экране в исходное состояние.17481749#### `turtle.screensize(canvwidth=None, canvheight=None, bg=None)`17501751**Параметры:**17521753- **canvwidth** – положительное целое, новая ширина холста в пикселях1754- **canvheight** – положительное целое, новая высота холста в пикселях1755- **bg** – строка цвета или кортеж цвета, новый цвет фона17561757Если аргументы не переданы, возвращает текущие (canvaswidth, canvasheight). В противном случае изменяет размер холста, на котором рисуют черепахи. Не изменяет окно рисования. Для просмотра скрытых частей холста используйте полосы прокрутки. С помощью этого метода можно сделать видимыми те части рисунка, которые раньше находились за пределами холста.17581759```python1760>>> screen.screensize()1761(400, 300)1762>>> screen.screensize(2000,1500)1763>>> screen.screensize()1764(2000, 1500)1765```17661767например, для поиска случайно сбежавшей черепахи ;-)17681769#### `turtle.setworldcoordinates(llx, lly, urx, ury)`17701771**Параметры:**17721773- **llx** – число, x-координата левого нижнего угла холста1774- **lly** – число, y-координата левого нижнего угла холста1775- **urx** – число, x-координата правого верхнего угла холста1776- **ury** – число, y-координата правого верхнего угла холста17771778Устанавливает пользовательскую систему координат и при необходимости переключается в режим «world». Это выполняет `screen.reset()`. Если режим «world» уже активен, все рисунки перерисовываются в соответствии с новыми координатами.17791780**ВНИМАНИЕ**: в пользовательских системах координат углы могут отображаться искажёнными.17811782```pycon1783>>> screen.reset()1784>>> screen.setworldcoordinates(-50,-7.5,50,7.5)1785>>> for _ in range(72):1786...     left(10)1787...1788>>> for _ in range(8):1789...     left(45); fd(2)   # правильный восьмиугольник1790```17911792### Управление анимацией17931794#### `turtle.delay(delay=None)`17951796**Параметры:**17971798**delay** – положительное целое17991800Устанавливает или возвращает задержку *delay* рисования в миллисекундах. (Это приблизительно интервал времени между двумя последовательными обновлениями холста.) Чем больше задержка рисования, тем медленнее анимация.18011802Необязательный аргумент:18031804```pycon1805>>> screen.delay()1806101807>>> screen.delay(5)1808>>> screen.delay()180951810```18111812#### `turtle.tracer(n=None, delay=None)`18131814**Параметры:**18151816- **n** – неотрицательное целое число1817- **delay** – неотрицательное целое число18181819Включает или выключает анимацию черепашки и устанавливает задержку для обновления рисунков. Если задан *n*, то реально выполняется только каждое n-е обычное обновление экрана. (Может использоваться для ускорения рисования сложной графики.) При вызове без аргументов возвращает текущее сохранённое значение n. Второй аргумент задаёт значение задержки (см. [`delay()`](https://python-all.ru/3.13/library/turtle.html#turtle.delay)).18201821```pycon1822>>> screen.tracer(8, 25)1823>>> dist = 21824>>> for i in range(200):1825...     fd(dist)1826...     rt(90)1827...     dist += 21828```18291830#### `turtle.update()`18311832Выполняет обновление TurtleScreen. Используется, когда tracer выключен.18331834См. также метод [`speed()`](https://python-all.ru/3.13/library/turtle.html#turtle.speed) RawTurtle/Turtle.18351836### Использование событий экрана18371838#### `turtle.listen(xdummy=None, ydummy=None)`18391840Устанавливает фокус на TurtleScreen (для сбора событий клавиш). Фиктивные аргументы предусмотрены, чтобы можно было передать `listen()` методу onclick.18411842#### `turtle.onkey(fun, key)`18431844#### `turtle.onkeyrelease(fun, key)`18451846**Параметры:**18471848- **fun** – функция без аргументов или `None`1849- **key** – строка: клавиша (например, “a”) или символ клавиши (например, “space”)18501851Привязывает *fun* к событию отпускания клавиши key. Если *fun* равен `None`, привязки событий удаляются. Замечание: для регистрации событий клавиш TurtleScreen должен иметь фокус. (См. метод [`listen()`](https://python-all.ru/3.13/library/turtle.html#turtle.listen).)18521853```pycon1854>>> def f():1855...     fd(50)1856...     lt(60)1857...1858>>> screen.onkey(f, "Up")1859>>> screen.listen()1860```18611862#### `turtle.onkeypress(fun, key=None)`18631864**Параметры:**18651866- **fun** – функция без аргументов или `None`1867- **key** – строка: клавиша (например, “a”) или символ клавиши (например, “space”)18681869Привязывает *fun* к событию нажатия клавиши key, если key задан, или к любому событию нажатия клавиши, если key не задан. Замечание: для регистрации событий клавиш TurtleScreen должен иметь фокус. (См. метод [`listen()`](https://python-all.ru/3.13/library/turtle.html#turtle.listen).)18701871```pycon1872>>> def f():1873...     fd(50)1874...1875>>> screen.onkey(f, "Up")1876>>> screen.listen()1877```18781879#### `turtle.onclick(fun, btn=1, add=None)`18801881#### `turtle.onscreenclick(fun, btn=1, add=None)`18821883**Параметры:**18841885- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1886- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1887- **add**`True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку18881889Привязывает *fun* к событиям щелчка мыши на этом экране. Если *fun* равен `None`, существующие привязки удаляются.18901891Пример для экземпляра TurtleScreen с именем `screen` и экземпляра Turtle с именем `turtle`:18921893```pycon1894>>> screen.onclick(turtle.goto) # Последующий щелчок по TurtleScreen заставит1895>>>                             # черепашку переместиться в точку щелчка.1896>>> screen.onclick(None)        # снова удалить привязку события1897```18981899> **Примечание**1900>1901> Этот метод TurtleScreen доступен как глобальная функция только под именем `onscreenclick`. Глобальная функция `onclick` – это другая, производная от метода Turtle `onclick`.19021903#### `turtle.ontimer(fun, t=0)`19041905**Параметры:**19061907- **fun** – функция без аргументов1908- **t** – число \>= 019091910Устанавливает таймер, который вызывает *fun* через *t* миллисекунд.19111912```pycon1913>>> running = True1914>>> def f():1915...     if running:1916...         fd(50)1917...         lt(60)1918...         screen.ontimer(f, 250)1919>>> f()   ### заставляет черепашку обходить вокруг1920>>> running = False1921```19221923#### `turtle.mainloop()`19241925#### `turtle.done()`19261927Запускает цикл событий – вызывает функцию mainloop из Tkinter. Должна быть последней инструкцией в программе с черепашьей графикой. Должна *не* использоваться, если скрипт запускается из IDLE в режиме -n (без подпроцесса) – для интерактивного использования черепашьей графики.19281929```python1930>>> screen.mainloop()1931```19321933### Методы ввода19341935#### `turtle.textinput(title, prompt)`19361937**Параметры:**19381939- **title** – строка1940- **prompt** – строка19411942Отображает диалоговое окно для ввода строки. Параметр title – заголовок диалогового окна, prompt – текст, в основном описывающий, какую информацию нужно ввести. Возвращает введённую строку. Если диалог отменён, возвращает `None`.19431944```python1945>>> screen.textinput("NIM", "Name of first player:")1946```19471948#### `turtle.numinput(title, prompt, default=None, minval=None, maxval=None)`19491950**Параметры:**19511952- **title** – строка1953- **prompt** – строка1954- **default** – число (необязательно)1955- **minval** – число (необязательно)1956- **maxval** – число (необязательно)19571958Отображает диалоговое окно для ввода числа. title – заголовок диалогового окна, prompt – текст, в основном описывающий, какую числовую информацию нужно ввести. default – значение по умолчанию, minval – минимальное значение для ввода, maxval – максимальное значение для ввода. Введённое число должно находиться в диапазоне от minval до maxval, если эти значения заданы. Если нет, выводится подсказка, и диалог остаётся открытым для исправления. Возвращает введённое число. Если диалог отменён, возвращает `None`.19591960```python1961>>> screen.numinput("Poker", "Your stakes:", 1000, minval=10, maxval=10000)1962```19631964### Настройки и специальные методы19651966#### `turtle.mode(mode=None)`19671968**Параметры:**19691970**mode** – одна из строк “standard”, “logo” или “world”19711972Устанавливает режим черепахи (“standard”, “logo” или “world”) и выполняет сброс. Если режим не задан, возвращается текущий режим.19731974Режим “standard” совместим со старой `turtle`. Режим “logo” совместим с большинством черепашьих графических средств Logo. Режим “world” использует заданные пользователем «мировые координаты». **Внимание**: в этом режиме углы выглядят искажёнными, если `x/y` коэффициент единицы измерения не равен 1.19751976| Режим | Начальное направление черепахи | положительные углы |1977| --- | --- | --- |1978| “standard” | вправо (восток) | против часовой стрелки |1979| “logo” | вверх (север) | по часовой стрелке |19801981```pycon1982>>> mode("logo")   # сбрасывает направление черепашки на север1983>>> mode()1984'logo'1985```19861987#### `turtle.colormode(cmode=None)`19881989**Параметры:**19901991**cmode** – одно из значений 1.0 или 25519921993Возвращает цветовой режим или устанавливает его в 1.0 или 255. Впоследствии значения *r*, *g*, *b* цветовых троек должны находиться в диапазоне от 0 до \*cmode\*.19941995```pycon1996>>> screen.colormode(1)1997>>> turtle.pencolor(240, 160, 80)1998Traceback (most recent call last):1999     ...2000TurtleGraphicsError: bad color sequence: (240, 160, 80)2001>>> screen.colormode()20021.02003>>> screen.colormode(255)2004>>> screen.colormode()20052552006>>> turtle.pencolor(240,160,80)2007```20082009#### `turtle.getcanvas()`20102011Возвращает Canvas данного TurtleScreen. Полезно для тех, кто знает, что делать с Canvas из Tkinter.20122013```pycon2014>>> cv = screen.getcanvas()2015>>> cv2016<turtle.ScrolledCanvas object ...>2017```20182019#### `turtle.getshapes()`20202021Возвращает список названий всех доступных в данный момент форм черепашки.20222023```pycon2024>>> screen.getshapes()2025['arrow', 'blank', 'circle', ..., 'turtle']2026```20272028#### `turtle.register_shape(name, shape=None)`20292030#### `turtle.addshape(name, shape=None)`20312032Эту функцию можно вызвать тремя различными способами:203320341. *name* – это имя gif-файла, а *shape* – это `None`: установите соответствующую форму изображения.20352036   ```python2037   >>> screen.register_shape("turtle.gif")2038   ```20392040   > **Примечание**2041   >2042   > Формы изображений *не* поворачиваются при повороте черепашки, поэтому они не отображают направление черепашки!20432. *name* – произвольная строка, а *shape* – кортеж пар координат: устанавливает соответствующую многоугольную форму.20442045   ```pycon2046   >>> screen.register_shape("triangle", ((5,-3), (0,5), (-5,-3)))2047   ```20483. *name* – произвольная строка, а *shape* – (составной) объект [`Shape`](https://python-all.ru/3.13/library/turtle.html#turtle.Shape): устанавливает соответствующую составную форму.20492050Добавляет форму черепашки в список форм TurtleScreen. Только зарегистрированные таким образом формы можно использовать, выполнив команду `shape(shapename)`.20512052#### `turtle.turtles()`20532054Возвращает список черепашек на экране.20552056```pycon2057>>> for turtle in screen.turtles():2058...     turtle.color("red")2059```20602061#### `turtle.window_height()`20622063Возвращает высоту окна черепашки.20642065```python2066>>> screen.window_height()20674802068```20692070#### `turtle.window_width()`20712072Возвращает ширину окна черепашки.20732074```python2075>>> screen.window_width()20766402077```20782079### Методы, специфичные для Screen, не наследуемые от TurtleScreen20802081#### `turtle.bye()`20822083Закрывает окно графики черепашки.20842085#### `turtle.exitonclick()`20862087Привязывает метод `bye()` к щелчкам мыши на экране.20882089Если значение «using\_IDLE» в словаре конфигурации равно `False` (значение по умолчанию), также запускается главный цикл. Примечание: если используется IDLE с ключом `-n` (без подпроцесса), это значение следует установить в `True` в `turtle.cfg`. В этом случае собственный главный цикл IDLE активен также для клиентского скрипта.20902091#### `turtle.setup(width=_CFG['width'], height=_CFG['height'], startx=_CFG['leftright'], starty=_CFG['topbottom'])`20922093Устанавливает размер и положение главного окна. Значения аргументов по умолчанию хранятся в словаре конфигурации и могут быть изменены через файл `turtle.cfg`.20942095**Параметры:**20962097- **width** – если целое число, размер в пикселях; если число с плавающей запятой, доля экрана; по умолчанию – 50% экрана.2098- **height** – если целое число, высота в пикселях; если число с плавающей запятой, доля от экрана; по умолчанию 75% экрана2099- **startx** – если положительное, начальная позиция в пикселях от левого края экрана; если отрицательное – от правого края; если `None`, окно центрируется по горизонтали2100- **starty** – если положительное, начальная позиция в пикселях от верхнего края экрана; если отрицательное – от нижнего края; если `None`, окно центрируется по вертикали21012102```pycon2103>>> screen.setup (width=200, height=200, startx=0, starty=0)2104>>>              # устанавливает окно размером 200x200 пикселей в верхнем левом углу экрана2105>>> screen.setup(width=.75, height=0.5, startx=None, starty=None)2106>>>              # устанавливает окно 75% на 50% экрана и центрирует его2107```21082109#### `turtle.title(titlestring)`21102111**Параметры:**21122113**titlestring** – строка, отображаемая в заголовке окна черепашьей графики21142115Устанавливает заголовок окна черепашки равным *titlestring*.21162117```pycon2118>>> screen.title("Welcome to the turtle zoo!")2119```21202121## Открытые классы21222123#### `class turtle.RawTurtle(canvas)`21242125#### `class turtle.RawPen(canvas)`21262127**Параметры:**21282129**canvas**`tkinter.Canvas`, [`ScrolledCanvas`](https://python-all.ru/3.13/library/turtle.html#turtle.ScrolledCanvas) или [`TurtleScreen`](https://python-all.ru/3.13/library/turtle.html#turtle.TurtleScreen)21302131Создаёт черепашку. Объект черепашки обладает всеми методами, описанными выше как «методы Turtle/RawTurtle».21322133#### `class turtle.Turtle`21342135Подкласс RawTurtle, имеет тот же интерфейс, но рисует на объекте [`Screen`](https://python-all.ru/3.13/library/turtle.html#turtle.Screen) по умолчанию, который создаётся автоматически при первом обращении.21362137#### `class turtle.TurtleScreen(cv)`21382139**Параметры:**21402141**cv**`tkinter.Canvas`21422143Предоставляет экранно-ориентированные методы, такие как [`bgcolor()`](https://python-all.ru/3.13/library/turtle.html#turtle.bgcolor) и другие, описанные выше.21442145#### `class turtle.Screen`21462147Подкласс TurtleScreen, [дополненный четырьмя методами](https://python-all.ru/3.13/library/turtle.html#screenspecific).21482149#### `class turtle.ScrolledCanvas(master)`21502151**Параметры:**21522153**master** – виджет Tkinter, в который помещается ScrolledCanvas; например, Tkinter-холст с добавленными полосами прокрутки21542155Используется классом Screen, который, таким образом, автоматически предоставляет ScrolledCanvas в качестве поля для черепашек.21562157#### `class turtle.Shape(type_, data)`21582159**Параметры:**21602161**type\_** – одна из строк: «polygon», «image», «compound»21622163Структура данных для описания фигур. Пара `(type_, data)` должна соответствовать следующей спецификации:21642165| *type\_* | *данные* |2166| --- | --- |2167| «polygon» | кортеж многоугольника, т.е. кортеж пар координат |2168| «image» | изображение (в таком виде используется только внутри!) |2169| «compound» | `None` (составная фигура должна строиться с помощью метода [`addcomponent()`](https://python-all.ru/3.13/library/turtle.html#turtle.Shape.addcomponent)) |21702171#### `addcomponent(poly, fill, outline, None)`21722173**Параметры:**21742175- **poly** – многоугольник, т.е. кортеж пар чисел2176- **fill** – цвет, которым будет заполнен *poly*2177- **outline** – цвет контура многоугольника (если задан)21782179Пример:21802181```pycon2182>>> poly = ((0,0),(10,-5),(0,10),(-10,-5))2183>>> s = Shape("compound")2184>>> s.addcomponent(poly, "red", "blue")2185>>> # ... добавьте больше компонентов, а затем используйте register_shape()2186```21872188См. [Составные фигуры](https://python-all.ru/3.13/library/turtle.html#compoundshapes).21892190#### `class turtle.Vec2D(x, y)`21912192Двумерный векторный класс, используемый как вспомогательный класс для реализации graphics черепашки. Может быть полезен и для программ с графикой черепашки. Производный от tuple, так что вектор – это кортеж!21932194Предоставляет (для векторов *a*, *b* и числа *k*):21952196- `a + b` сложение векторов2197- `a - b` вычитание векторов2198- `a * b` скалярное произведение2199- `k * a` и `a * k` умножение на скаляр2200- `abs(a)` абсолютное значение a2201- `a.rotate(angle)` поворот22022203## Пояснение22042205Объект черепашки рисует на объекте экрана, и в объектно-ориентированном интерфейсе черепашки есть ряд ключевых классов, которые можно использовать для их создания и связи друг с другом.22062207Экземпляр [`Turtle`](https://python-all.ru/3.13/library/turtle.html#turtle.Turtle) автоматически создаст экземпляр [`Screen`](https://python-all.ru/3.13/library/turtle.html#turtle.Screen), если его ещё нет.22082209`Turtle` – подкласс [`RawTurtle`](https://python-all.ru/3.13/library/turtle.html#turtle.RawTurtle), который *не* создаёт автоматически поверхность для рисования – для него необходимо предоставить или создать *холст*. *Холст* может быть `tkinter.Canvas`, [`ScrolledCanvas`](https://python-all.ru/3.13/library/turtle.html#turtle.ScrolledCanvas) или [`TurtleScreen`](https://python-all.ru/3.13/library/turtle.html#turtle.TurtleScreen).22102211[`TurtleScreen`](https://python-all.ru/3.13/library/turtle.html#turtle.TurtleScreen) – основная поверхность для рисования черепашки. [`Screen`](https://python-all.ru/3.13/library/turtle.html#turtle.Screen) – подкласс `TurtleScreen` и включает [несколько дополнительных методов](https://python-all.ru/3.13/library/turtle.html#screenspecific) для управления своим внешним видом (включая размер и заголовок) и поведением. Конструктор `TurtleScreen` требует аргумент `tkinter.Canvas` или [`ScrolledCanvas`](https://python-all.ru/3.13/library/turtle.html#turtle.ScrolledCanvas).22122213Функциональный интерфейс для графики черепашки использует различные методы `Turtle` и `TurtleScreen`/`Screen`. За кулисами объект экрана автоматически создаётся при каждом вызове функции, производной от метода `Screen`. Аналогично, объект черепашки автоматически создаётся при каждом вызове любой из функций, производных от метода Turtle.22142215Для использования нескольких черепашек на одном экране необходимо использовать объектно-ориентированный интерфейс.22162217## Справка и настройка22182219### Как пользоваться справкой22202221Публичные методы классов Screen и Turtle подробно документированы через docstrings. Их можно использовать как онлайн-справку через средства помощи Python:22222223- При использовании IDLE всплывающие подсказки показывают сигнатуры и первые строки docstrings для введённых вызовов функций/методов.2224- Вызов [`help()`](https://python-all.ru/3.13/library/functions.html#help) для методов или функций отображает docstrings:22252226  ```python2227  >>> help(Screen.bgcolor)2228  Help on method bgcolor in module turtle:22292230  bgcolor(self, *args) unbound turtle.Screen method2231      Set or return backgroundcolor of the TurtleScreen.22322233      Arguments (if given): a color string or three numbers2234      in the range 0..colormode or a 3-tuple of such numbers.22352236      >>> screen.bgcolor("orange")2237      >>> screen.bgcolor()2238      "orange"2239      >>> screen.bgcolor(0.5,0,0.5)2240      >>> screen.bgcolor()2241      "#800080"22422243  >>> help(Turtle.penup)2244  Help on method penup in module turtle:22452246  penup(self) unbound turtle.Turtle method2247      Pull the pen up -- no drawing when moving.22482249      Aliases: penup | pu | up22502251      No argument22522253      >>> turtle.penup()2254  ```2255- Docstrings функций, производных от методов, имеют изменённую форму:22562257  ```python2258  >>> help(bgcolor)2259  Help on function bgcolor in module turtle:22602261  bgcolor(*args)2262      Set or return backgroundcolor of the TurtleScreen.22632264      Arguments (if given): a color string or three numbers2265      in the range 0..colormode or a 3-tuple of such numbers.22662267      Example::22682269        >>> bgcolor("orange")2270        >>> bgcolor()2271        "orange"2272        >>> bgcolor(0.5,0,0.5)2273        >>> bgcolor()2274        "#800080"22752276  >>> help(penup)2277  Help on function penup in module turtle:22782279  penup()2280      Pull the pen up -- no drawing when moving.22812282      Aliases: penup | pu | up22832284      No argument22852286      Example:2287      >>> penup()2288  ```22892290Эти изменённые docstrings создаются автоматически вместе с определениями функций, которые производятся от методов во время импорта.22912292### Перевод docstrings на разные языки22932294Существует утилита для создания словаря, ключами которого являются имена методов, а значениями – docstrings публичных методов классов Screen и Turtle.22952296#### `turtle.write_docstringdict(filename='turtle_docstringdict')`22972298**Параметры:**22992300**filename** – строка, используемая как имя файла23012302Создаёт и записывает словарь docstring в Python-скрипт с заданным именем файла. Эту функцию необходимо вызывать явно (она не используется классами графики черепашки). Словарь docstring будет записан в Python-скрипт `filename.py`. Он предназначен для использования в качестве шаблона для перевода docstrings на разные языки.23032304Если вы (или ваши студенты) хотите использовать `turtle` с онлайн-справкой на вашем родном языке, необходимо перевести docstrings и сохранить полученный файл, например, как `turtle_docstringdict_german.py`.23052306Если в вашем файле `turtle.cfg` есть соответствующая запись, этот словарь будет считан на этапе импорта и заменит оригинальные англоязычные строки документации.23072308На момент написания этого текста есть словари строк документации на немецком и итальянском. (Запросы направляйте на [glingl@aon.at](https://python-all.ru/3.13/library/turtle.html).)23092310### Как настроить Screen и Turtles23112312Встроенная конфигурация по умолчанию имитирует внешний вид и поведение старого модуля turtle, чтобы сохранить максимально возможную совместимость с ним.23132314Если вы хотите использовать другую конфигурацию, которая лучше отражает возможности этого модуля или лучше соответствует вашим потребностям, например, для использования в классе, вы можете подготовить файл конфигурации `turtle.cfg`, который будет прочитан на этапе импорта и изменит конфигурацию в соответствии с его настройками.23152316Встроенная конфигурация соответствует следующему `turtle.cfg`:23172318```ini2319width = 0.52320height = 0.752321leftright = None2322topbottom = None2323canvwidth = 4002324canvheight = 3002325mode = standard2326colormode = 1.02327delay = 102328undobuffersize = 10002329shape = classic2330pencolor = black2331fillcolor = black2332resizemode = noresize2333visible = True2334language = english2335exampleturtle = turtle2336examplescreen = screen2337title = Python Turtle Graphics2338using_IDLE = False2339```23402341Краткое пояснение выбранных записей:23422343- Первые четыре строки соответствуют аргументам метода [`Screen.setup`](https://python-all.ru/3.13/library/turtle.html#turtle.setup).2344- Строки 5 и 6 соответствуют аргументам метода [`Screen.screensize`](https://python-all.ru/3.13/library/turtle.html#turtle.screensize).2345- *shape* может быть любой из встроенных форм, например: arrow, turtle и т.д. Для получения дополнительной информации попробуйте `help(shape)`.2346- Если вы хотите не использовать цвет заливки (т.е. сделать черепашку прозрачной), вы должны написать `fillcolor = ""` (но все непустые строки не должны содержать кавычки в cfg-файле).2347- Если вы хотите отразить состояние черепашки, вы должны использовать `resizemode = auto`.2348- Если вы установите, например, `language = italian`, то словарь строк документации `turtle_docstringdict_italian.py` будет загружен во время импорта (если он присутствует в пути импорта, например, в той же директории, что и `turtle`).2349- Записи *exampleturtle* и *examplescreen* задают имена этих объектов, как они встречаются в строках документации. Преобразование строк документации методов в строки документации функций удалит эти имена из строк документации.2350- *using\_IDLE*: Установите это в `True`, если вы регулярно работаете с IDLE и его переключателем `-n` («нет подпроцесса»). Это предотвратит [`exitonclick()`](https://python-all.ru/3.13/library/turtle.html#turtle.exitonclick) от входа в главный цикл.23512352Может быть файл `turtle.cfg` в каталоге, где хранится `turtle`, и дополнительный файл в текущем рабочем каталоге. Последний переопределит настройки первого.23532354Каталог `Lib/turtledemo` содержит файл `turtle.cfg`. Вы можете изучить его как пример и увидеть его эффекты при запуске демонстраций (желательно не из средства просмотра демонстраций).23552356## `turtledemo` – Демонстрационные скрипты23572358Пакет `turtledemo` включает набор демонстрационных скриптов. Эти скрипты можно запускать и просматривать с помощью поставляемого средства просмотра демонстраций следующим образом:23592360```python2361python -m turtledemo2362```23632364В качестве альтернативы вы можете запускать демонстрационные скрипты по отдельности. Например,23652366```python2367python -m turtledemo.bytedesign2368```23692370Каталог пакета `turtledemo` содержит:23712372- Средство просмотра демонстраций `__main__.py`, которое можно использовать для просмотра исходного кода скриптов и одновременного их запуска.2373- Несколько скриптов, демонстрирующих различные возможности модуля `turtle`. Примеры доступны через меню Examples. Их также можно запускать отдельно.2374- Файл `turtle.cfg`, который служит примером того, как писать и использовать такие файлы.23752376Демонстрационные скрипты:23772378| Имя | Описание | Возможности |2379| --- | --- | --- |2380| `bytedesign` | сложный классический узор черепашьей графики | [`tracer()`](https://python-all.ru/3.13/library/turtle.html#turtle.tracer), [`delay()`](https://python-all.ru/3.13/library/turtle.html#turtle.delay), [`update()`](https://python-all.ru/3.13/library/turtle.html#turtle.update) |2381| `chaos` | строит график динамики Ферхюльста, показывает, что компьютерные вычисления иногда могут давать результаты, противоречащие здравому смыслу | мировые координаты |2382| `clock` | аналоговые часы, показывающие время вашего компьютера | черепашки в качестве стрелок часов, [`ontimer()`](https://python-all.ru/3.13/library/turtle.html#turtle.ontimer) |2383| `colormixer` | эксперимент с r, g, b | [`ondrag()`](https://python-all.ru/3.13/library/turtle.html#turtle.ondrag) |2384| `forest` | 3 дерева обхода в ширину | рандомизация |2385| `fractalcurves` | Кривые Гильберта и Коха | рекурсия |2386| `lindenmayer` | этноматематика (индийские коламы) | L-система |2387| `minimal_hanoi` | Ханойские башни | Прямоугольные черепашки в качестве дисков Ханоя ([`shape()`](https://python-all.ru/3.13/library/turtle.html#turtle.shape), [`shapesize()`](https://python-all.ru/3.13/library/turtle.html#turtle.shapesize)) |2388| `nim` | игра в классический ним с тремя кучками палочек против компьютера. | черепашки как палочки нима, событийно-ориентированное управление (мышь, клавиатура) |2389| `paint` | супер-минималистичная программа для рисования | [`onclick()`](https://python-all.ru/3.13/library/turtle.html#turtle.onclick) |2390| `peace` | элементарный | черепашка: внешний вид и анимация |2391| `penrose` | непериодическое замощение воздушными змеями и дротиками | [`stamp()`](https://python-all.ru/3.13/library/turtle.html#turtle.stamp) |2392| `planet_and_moon` | симуляция гравитационной системы | составные фигуры, [`Vec2D`](https://python-all.ru/3.13/library/turtle.html#turtle.Vec2D) |2393| `rosette` | узор из статьи в Википедии о черепашьей графике | [`clone()`](https://python-all.ru/3.13/library/turtle.html#turtle.clone), [`undo()`](https://python-all.ru/3.13/library/turtle.html#turtle.undo) |2394| `round_dance` | танцующие черепашки, вращающиеся попарно в противоположных направлениях | составные фигуры, [`clone()`](https://python-all.ru/3.13/library/turtle.html#turtle.clone) [`shapesize()`](https://python-all.ru/3.13/library/turtle.html#turtle.shapesize), [`tilt()`](https://python-all.ru/3.13/library/turtle.html#turtle.tilt), [`get_shapepoly()`](https://python-all.ru/3.13/library/turtle.html#turtle.get_shapepoly), [`update()`](https://python-all.ru/3.13/library/turtle.html#turtle.update) |2395| `sorting_animate` | визуальная демонстрация различных методов сортировки | простое выравнивание, рандомизация |2396| `tree` | (графическое) дерево обхода в ширину (с использованием генераторов) | [`clone()`](https://python-all.ru/3.13/library/turtle.html#turtle.clone) |2397| `two_canvases` | простой дизайн | черепашки на двух холстах |2398| `yinyang` | ещё один элементарный пример | [`circle()`](https://python-all.ru/3.13/library/turtle.html#turtle.circle) |23992400Удачи!24012402## Изменения, начиная с Python 2.624032404- Методы [`Turtle.tracer`](https://python-all.ru/3.13/library/turtle.html#turtle.tracer), [`Turtle.window_width`](https://python-all.ru/3.13/library/turtle.html#turtle.window_width) и [`Turtle.window_height`](https://python-all.ru/3.13/library/turtle.html#turtle.window_height) были удалены. Методы с такими именами и функциональностью теперь доступны только как методы [`Screen`](https://python-all.ru/3.13/library/turtle.html#turtle.Screen). Производные от них функции остаются доступными. (На самом деле уже в Python 2.6 эти методы были просто дубликатами соответствующих методов [`TurtleScreen`](https://python-all.ru/3.13/library/turtle.html#turtle.TurtleScreen)/`Screen`.)2405- Метод `Turtle.fill()` был удалён. Поведение [`begin_fill()`](https://python-all.ru/3.13/library/turtle.html#turtle.begin_fill) и [`end_fill()`](https://python-all.ru/3.13/library/turtle.html#turtle.end_fill) незначительно изменилось: теперь каждый процесс заливки должен завершаться вызовом `end_fill()`.2406- Добавлен метод [`Turtle.filling`](https://python-all.ru/3.13/library/turtle.html#turtle.filling). Он возвращает булево значение: `True`, если процесс заливки выполняется, `False` в противном случае. Это поведение соответствует вызову `fill()` без аргументов в Python 2.6.24072408## Изменения, начиная с Python 3.024092410- Были добавлены методы [`Turtle`](https://python-all.ru/3.13/library/turtle.html#turtle.Turtle): [`shearfactor()`](https://python-all.ru/3.13/library/turtle.html#turtle.shearfactor), [`shapetransform()`](https://python-all.ru/3.13/library/turtle.html#turtle.shapetransform) и [`get_shapepoly()`](https://python-all.ru/3.13/library/turtle.html#turtle.get_shapepoly). Таким образом, теперь доступен полный набор обычных линейных преобразований для трансформации форм черепашек. Функциональность [`tiltangle()`](https://python-all.ru/3.13/library/turtle.html#turtle.tiltangle) была расширена: теперь его можно использовать для получения или установки угла наклона.2411- Метод [`Screen`](https://python-all.ru/3.13/library/turtle.html#turtle.Screen) [`onkeypress()`](https://python-all.ru/3.13/library/turtle.html#turtle.onkeypress) добавлен как дополнение к [`onkey()`](https://python-all.ru/3.13/library/turtle.html#turtle.onkey). Поскольку последний привязывает действия к событию отпускания клавиши, для него также был добавлен псевдоним [`onkeyrelease()`](https://python-all.ru/3.13/library/turtle.html#turtle.onkeyrelease).2412- Метод [`Screen.mainloop`](https://python-all.ru/3.13/library/turtle.html#turtle.mainloop) добавлен, поэтому больше нет необходимости использовать отдельную функцию `mainloop()` при работе с объектами [`Screen`](https://python-all.ru/3.13/library/turtle.html#turtle.Screen) и [`Turtle`](https://python-all.ru/3.13/library/turtle.html#turtle.Turtle).2413- Добавлены два метода ввода: [`Screen.textinput`](https://python-all.ru/3.13/library/turtle.html#turtle.textinput) и [`Screen.numinput`](https://python-all.ru/3.13/library/turtle.html#turtle.numinput). Они открывают диалоговые окна ввода и возвращают строки и числа соответственно.2414- Два примера скриптов `tdemo_nim.py` и `tdemo_round_dance.py` добавлены в каталог `Lib/turtledemo`.2415