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

turtle.md

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

1> **Источник:** https://python-all.ru/3.15/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.15/Lib/turtle.py)1011---1213## Введение1415Черепашья графика – это реализация [популярных инструментов геометрического рисования, впервые представленных в Logo](https://python-all.ru/3.15/library/turtle.html), разработанных Уолли Фёрзейгом, Сеймуром Пейпертом и Синтией Соломон в 1967 году.1617Это [опциональный модуль](https://python-all.ru/3.15/glossary.html#term-optional-module). Если его нет в вашей копии CPython, обратитесь к документации от вашего дистрибьютора (то есть того, кто предоставил вам Python). Если вы дистрибьютор, обратитесь к [требованиям к опциональным модулям](https://python-all.ru/3.15/using/configure.html#optional-module-requirements).1819## Начало работы2021Представьте роботизированную черепашку, начинающую с точки (0, 0) на плоскости x-y. После `import turtle` дайте ей команду `turtle.forward(15)`, и она переместится (на экране!) на 15 пикселей в том направлении, куда смотрит, рисуя линию во время движения. Дайте ей команду `turtle.right(25)`, и она повернётся на месте на 25 градусов по часовой стрелке.2223Черепашья звезда2425Черепашка может рисовать сложные фигуры с помощью программ, повторяющих простые движения.2627![../_images/turtle-star.png](https://python-all.ru/3.15/_images/turtle-star.png)2829В Python черепашья графика предоставляет представление физической «черепашки» (маленького робота с пером), которая рисует на листе бумаги на полу.3031Это эффективный и проверенный способ для учащихся знакомиться с концепциями программирования и взаимодействием с программным обеспечением, поскольку он обеспечивает мгновенную видимую обратную связь. Он также предоставляет удобный доступ к графическому выводу в целом.3233Рисование с помощью черепашки было изначально создано как образовательный инструмент для использования учителями в классе. Для программиста, которому нужно получить некоторый графический вывод, это может быть способом сделать это без излишних сложностей, связанных с внедрением более сложных или внешних библиотек в свою работу.3435## Учебное руководство3637Здесь следует начать новым пользователям. В этом руководстве мы рассмотрим некоторые основы рисования с помощью черепашки.3839### Запуск среды черепашки4041В оболочке Python импортируйте все объекты модуля `turtle`:4243```python44from turtle import *45```4647Если вы столкнётесь с ошибкой `No module named '_tkinter'`, вам придётся установить [`Tk interface package`](https://python-all.ru/3.15/library/tkinter.html#module-tkinter) в вашу систему.4849### Основы рисования5051Отправьте черепашку вперёд на 100 шагов:5253```python54forward(100)55```5657Вы должны увидеть (скорее всего, в новом окне на вашем дисплее) линию, нарисованную черепашкой, направленную на восток. Измените направление черепашки так, чтобы она повернулась на 120 градусов влево (против часовой стрелки):5859```python60left(120)61```6263Давайте продолжим, нарисовав треугольник:6465```python66forward(100)67left(120)68forward(100)69```7071Обратите внимание, как черепашка, представленная стрелкой, указывает в разные направления по мере управления ею.7273Экспериментируйте с этими командами, а также с `backward()` и `right()`.7475#### Управление пером7677Попробуйте изменить цвет (например, `color('blue')`) и толщину линии (например, `width(3)`), а затем снова нарисуйте.7879Вы также можете перемещать черепашку без рисования, подняв перо: `up()` перед перемещением. Чтобы снова начать рисовать, используйте `down()`.8081#### Позиция черепашки8283Отправьте черепашку обратно в начальную точку (полезно, если она исчезла с экрана):8485```python86home()87```8889Домашняя позиция находится в центре экрана черепашки. Если вам когда-нибудь понадобится их узнать, получите x-y координаты черепашки с помощью:9091```python92pos()93```9495Дом находится в `(0, 0)`.9697И через некоторое время, вероятно, будет полезно очистить окно, чтобы начать заново:9899```python100clearscreen()101```102103### Создание алгоритмических узоров104105Используя циклы, можно построить геометрические узоры:106107```python108for steps in range(100):109    for c in ('blue', 'red', 'green'):110        color(c)111        forward(steps)112        right(30)113```114115– которые, конечно, ограничены только воображением!116117Нарисуем звезду в верхней части этой страницы. Линии – красные, заливка – жёлтая:118119```python120color('red')121fillcolor('yellow')122```123124Так же, как `up()` и `down()` определяют, будут ли рисоваться линии, заливку можно включать и выключать:125126```python127begin_fill()128```129130Далее создадим цикл:131132```python133while True:134    forward(200)135    left(170)136    if abs(pos()) < 1:137        break138```139140`abs(pos()) < 1` – хороший способ узнать, когда черепашка вернулась в исходное положение.141142Наконец, завершите заливку:143144```python145end_fill()146```147148(Обратите внимание: заливка фактически происходит только после команды `end_fill()`.)149150## Как…151152В этом разделе рассматриваются некоторые типичные варианты использования черепашьей графики и подходы к работе с ней.153154### Начать как можно быстрее155156Одно из удовольствий черепашьей графики – мгновенная визуальная обратная связь от простых команд. Это отличный способ познакомить детей с идеями программирования с минимальными усилиями (конечно, не только детей).157158Модуль turtle делает это возможным, предоставляя всю базовую функциональность в виде функций, доступных через `from turtle import *`. В [руководстве по черепашьей графике](https://python-all.ru/3.15/library/turtle.html#turtle-tutorial) описан этот подход.159160Стоит отметить, что многие команды черепашки имеют ещё более краткие эквиваленты, например `fd()` для [`forward()`](https://python-all.ru/3.15/library/turtle.html#turtle.forward). Они особенно полезны при работе с теми, кто ещё не освоил набор текста.161162> Для работы черепашьей графики необходимо, чтобы в системе был установлен [`Tk interface package`](https://python-all.ru/3.15/library/tkinter.html#module-tkinter). Имейте в виду, что это не всегда тривиально, поэтому проверьте заранее, если планируете использовать черепашью графику с учеником.163164### Автоматически начинать и завершать заливку165166Начиная с Python 3.14, можно использовать [`fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.fill) [контекстный менеджер](https://python-all.ru/3.15/glossary.html#term-context-manager) вместо [`begin_fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.begin_fill) и [`end_fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.end_fill) для автоматического начала и завершения заливки. Вот пример:167168```python169with fill():170    for i in range(4):171        forward(100)172        right(90)173174forward(200)175```176177Приведённый выше код эквивалентен:178179```python180begin_fill()181for i in range(4):182    forward(100)183    right(90)184end_fill()185186forward(200)187```188189### Использовать пространство имён модуля `turtle`190191Использовать `from turtle import *` удобно, но учтите: он импортирует довольно большое количество объектов, и если вы занимаетесь чем-то, кроме черепашьей графики, возникает риск конфликта имён (особенно если вы используете черепашью графику в скрипте, где могут импортироваться другие модули).192193Решение – использовать `import turtle`: `fd()` становится `turtle.fd()`, `width()` становится `turtle.width()` и так далее. (Если постоянно набирать «turtle» утомительно, используйте, например, `import turtle as t`.)194195### Использовать черепашью графику в скрипте196197Рекомендуется использовать пространство имён модуля `turtle`, как описано непосредственно выше, например:198199```python200import turtle as t201from random import random202203for i in range(100):204    steps = int(random() * 100)205    angle = int(random() * 360)206    t.right(angle)207    t.fd(steps)208```209210Однако требуется ещё один шаг: как только скрипт завершится, Python закроет окно черепашки. Добавьте:211212```python213t.mainloop()214```215216в конец скрипта. Теперь скрипт будет ждать завершения и не завершится, пока его не прервут, например, закрыв окно черепашьей графики.217218### Использовать объектно-ориентированную черепашью графику219220> **См. также**221>222> [Объяснение объектно-ориентированного интерфейса](https://python-all.ru/3.15/library/turtle.html#turtle-explanation)223224За исключением самых простых вводных целей или быстрого опробования, гораздо более привычно и эффективно использовать объектно-ориентированный подход к черепашьей графике. Например, это позволяет одновременно разместить на экране несколько черепашек.225226В этом подходе различные команды черепашки являются методами объектов (в основном объектов `Turtle`). *Можно* использовать объектно-ориентированный подход в оболочке, но чаще это делают в Python-скрипте.227228Тогда приведённый выше пример становится таким:229230```python231from turtle import Turtle232from random import random233234t = Turtle()235for i in range(100):236    steps = int(random() * 100)237    angle = int(random() * 360)238    t.right(angle)239    t.fd(steps)240241t.screen.mainloop()242```243244Обратите внимание на последнюю строку. `t.screen` – это экземпляр [`Screen`](https://python-all.ru/3.15/library/turtle.html#turtle.Screen), на котором существует экземпляр Turtle; он создаётся автоматически вместе с черепашкой.245246Экран черепашки можно настроить, например:247248```python249t.screen.title('Object-oriented turtle demo')250t.screen.bgcolor("orange")251```252253## Справочник по черепашьей графике254255> **Примечание**256>257> В следующей документации приведён список аргументов для функций. Методы, конечно, имеют дополнительный первый аргумент *self*, который здесь опущен.258259### Методы черепахи260261**Движение черепахи**262263**Перемещение и рисование**264265[`forward()`](https://python-all.ru/3.15/library/turtle.html#turtle.forward)266267|268269[`fd()`](https://python-all.ru/3.15/library/turtle.html#turtle.fd)270271[`backward()`](https://python-all.ru/3.15/library/turtle.html#turtle.backward)272273|274275[`bk()`](https://python-all.ru/3.15/library/turtle.html#turtle.bk)276277|278279[`back()`](https://python-all.ru/3.15/library/turtle.html#turtle.back)280281[`right()`](https://python-all.ru/3.15/library/turtle.html#turtle.right)282283|284285[`rt()`](https://python-all.ru/3.15/library/turtle.html#turtle.rt)286287[`left()`](https://python-all.ru/3.15/library/turtle.html#turtle.left)288289|290291[`lt()`](https://python-all.ru/3.15/library/turtle.html#turtle.lt)292293[`goto()`](https://python-all.ru/3.15/library/turtle.html#turtle.goto)294295|296297[`setpos()`](https://python-all.ru/3.15/library/turtle.html#turtle.setpos)298299|300301[`setposition()`](https://python-all.ru/3.15/library/turtle.html#turtle.setposition)302303[`teleport()`](https://python-all.ru/3.15/library/turtle.html#turtle.teleport)304305[`setx()`](https://python-all.ru/3.15/library/turtle.html#turtle.setx)306307[`sety()`](https://python-all.ru/3.15/library/turtle.html#turtle.sety)308309[`setheading()`](https://python-all.ru/3.15/library/turtle.html#turtle.setheading)310311|312313[`seth()`](https://python-all.ru/3.15/library/turtle.html#turtle.seth)314315[`home()`](https://python-all.ru/3.15/library/turtle.html#turtle.home)316317[`circle()`](https://python-all.ru/3.15/library/turtle.html#turtle.circle)318319[`dot()`](https://python-all.ru/3.15/library/turtle.html#turtle.dot)320321[`stamp()`](https://python-all.ru/3.15/library/turtle.html#turtle.stamp)322323[`clearstamp()`](https://python-all.ru/3.15/library/turtle.html#turtle.clearstamp)324325[`clearstamps()`](https://python-all.ru/3.15/library/turtle.html#turtle.clearstamps)326327[`undo()`](https://python-all.ru/3.15/library/turtle.html#turtle.undo)328329[`speed()`](https://python-all.ru/3.15/library/turtle.html#turtle.speed)330331**Состояние черепахи**332333[`position()`](https://python-all.ru/3.15/library/turtle.html#turtle.position)334335|336337[`pos()`](https://python-all.ru/3.15/library/turtle.html#turtle.pos)338339[`towards()`](https://python-all.ru/3.15/library/turtle.html#turtle.towards)340341[`xcor()`](https://python-all.ru/3.15/library/turtle.html#turtle.xcor)342343[`ycor()`](https://python-all.ru/3.15/library/turtle.html#turtle.ycor)344345[`heading()`](https://python-all.ru/3.15/library/turtle.html#turtle.heading)346347[`distance()`](https://python-all.ru/3.15/library/turtle.html#turtle.distance)348349**Настройка и измерение**350351[`degrees()`](https://python-all.ru/3.15/library/turtle.html#turtle.degrees)352353[`radians()`](https://python-all.ru/3.15/library/turtle.html#turtle.radians)354355**Управление пером**356357**Состояние рисования**358359[`pendown()`](https://python-all.ru/3.15/library/turtle.html#turtle.pendown)360361|362363[`pd()`](https://python-all.ru/3.15/library/turtle.html#turtle.pd)364365|366367[`down()`](https://python-all.ru/3.15/library/turtle.html#turtle.down)368369[`penup()`](https://python-all.ru/3.15/library/turtle.html#turtle.penup)370371|372373[`pu()`](https://python-all.ru/3.15/library/turtle.html#turtle.pu)374375|376377[`up()`](https://python-all.ru/3.15/library/turtle.html#turtle.up)378379[`pensize()`](https://python-all.ru/3.15/library/turtle.html#turtle.pensize)380381|382383[`width()`](https://python-all.ru/3.15/library/turtle.html#turtle.width)384385[`pen()`](https://python-all.ru/3.15/library/turtle.html#turtle.pen)386387[`isdown()`](https://python-all.ru/3.15/library/turtle.html#turtle.isdown)388389**Управление цветом**390391[`color()`](https://python-all.ru/3.15/library/turtle.html#turtle.color)392393[`pencolor()`](https://python-all.ru/3.15/library/turtle.html#turtle.pencolor)394395[`fillcolor()`](https://python-all.ru/3.15/library/turtle.html#turtle.fillcolor)396397**Заливка**398399[`filling()`](https://python-all.ru/3.15/library/turtle.html#turtle.filling)400401[`fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.fill)402403[`begin_fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.begin_fill)404405[`end_fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.end_fill)406407**Дополнительное управление рисованием**408409[`reset()`](https://python-all.ru/3.15/library/turtle.html#turtle.reset)410411[`clear()`](https://python-all.ru/3.15/library/turtle.html#turtle.clear)412413[`write()`](https://python-all.ru/3.15/library/turtle.html#turtle.write)414415**Состояние черепахи**416417**Видимость**418419[`showturtle()`](https://python-all.ru/3.15/library/turtle.html#turtle.showturtle)420421|422423[`st()`](https://python-all.ru/3.15/library/turtle.html#turtle.st)424425[`hideturtle()`](https://python-all.ru/3.15/library/turtle.html#turtle.hideturtle)426427|428429[`ht()`](https://python-all.ru/3.15/library/turtle.html#turtle.ht)430431[`isvisible()`](https://python-all.ru/3.15/library/turtle.html#turtle.isvisible)432433**Внешний вид**434435[`shape()`](https://python-all.ru/3.15/library/turtle.html#turtle.shape)436437[`resizemode()`](https://python-all.ru/3.15/library/turtle.html#turtle.resizemode)438439[`shapesize()`](https://python-all.ru/3.15/library/turtle.html#turtle.shapesize)440441|442443[`turtlesize()`](https://python-all.ru/3.15/library/turtle.html#turtle.turtlesize)444445[`shearfactor()`](https://python-all.ru/3.15/library/turtle.html#turtle.shearfactor)446447[`tiltangle()`](https://python-all.ru/3.15/library/turtle.html#turtle.tiltangle)448449[`tilt()`](https://python-all.ru/3.15/library/turtle.html#turtle.tilt)450451[`shapetransform()`](https://python-all.ru/3.15/library/turtle.html#turtle.shapetransform)452453[`get_shapepoly()`](https://python-all.ru/3.15/library/turtle.html#turtle.get_shapepoly)454455**Использование событий**456457[`onclick()`](https://python-all.ru/3.15/library/turtle.html#turtle.onclick)458459[`onrelease()`](https://python-all.ru/3.15/library/turtle.html#turtle.onrelease)460461[`ondrag()`](https://python-all.ru/3.15/library/turtle.html#turtle.ondrag)462463**Специальные методы черепахи**464465[`poly()`](https://python-all.ru/3.15/library/turtle.html#turtle.poly)466467[`begin_poly()`](https://python-all.ru/3.15/library/turtle.html#turtle.begin_poly)468469[`end_poly()`](https://python-all.ru/3.15/library/turtle.html#turtle.end_poly)470471[`get_poly()`](https://python-all.ru/3.15/library/turtle.html#turtle.get_poly)472473[`clone()`](https://python-all.ru/3.15/library/turtle.html#turtle.clone)474475[`getturtle()`](https://python-all.ru/3.15/library/turtle.html#turtle.getturtle)476477|478479[`getpen()`](https://python-all.ru/3.15/library/turtle.html#turtle.getpen)480481[`getscreen()`](https://python-all.ru/3.15/library/turtle.html#turtle.getscreen)482483[`setundobuffer()`](https://python-all.ru/3.15/library/turtle.html#turtle.setundobuffer)484485[`undobufferentries()`](https://python-all.ru/3.15/library/turtle.html#turtle.undobufferentries)486487### Методы TurtleScreen/Screen488489**Управление окном**490491[`bgcolor()`](https://python-all.ru/3.15/library/turtle.html#turtle.bgcolor)492493[`bgpic()`](https://python-all.ru/3.15/library/turtle.html#turtle.bgpic)494495[`clearscreen()`](https://python-all.ru/3.15/library/turtle.html#turtle.clearscreen)496497[`resetscreen()`](https://python-all.ru/3.15/library/turtle.html#turtle.resetscreen)498499[`screensize()`](https://python-all.ru/3.15/library/turtle.html#turtle.screensize)500501[`setworldcoordinates()`](https://python-all.ru/3.15/library/turtle.html#turtle.setworldcoordinates)502503**Управление анимацией**504505[`no_animation()`](https://python-all.ru/3.15/library/turtle.html#turtle.no_animation)506507[`delay()`](https://python-all.ru/3.15/library/turtle.html#turtle.delay)508509[`tracer()`](https://python-all.ru/3.15/library/turtle.html#turtle.tracer)510511[`update()`](https://python-all.ru/3.15/library/turtle.html#turtle.update)512513**Использование событий экрана**514515[`listen()`](https://python-all.ru/3.15/library/turtle.html#turtle.listen)516517[`onkey()`](https://python-all.ru/3.15/library/turtle.html#turtle.onkey)518519|520521[`onkeyrelease()`](https://python-all.ru/3.15/library/turtle.html#turtle.onkeyrelease)522523[`onkeypress()`](https://python-all.ru/3.15/library/turtle.html#turtle.onkeypress)524525[`onclick()`](https://python-all.ru/3.15/library/turtle.html#turtle.onclick)526527|528529[`onscreenclick()`](https://python-all.ru/3.15/library/turtle.html#turtle.onscreenclick)530531[`ontimer()`](https://python-all.ru/3.15/library/turtle.html#turtle.ontimer)532533[`mainloop()`](https://python-all.ru/3.15/library/turtle.html#turtle.mainloop)534535|536537[`done()`](https://python-all.ru/3.15/library/turtle.html#turtle.done)538539**Настройки и специальные методы**540541[`mode()`](https://python-all.ru/3.15/library/turtle.html#turtle.mode)542543[`colormode()`](https://python-all.ru/3.15/library/turtle.html#turtle.colormode)544545[`getcanvas()`](https://python-all.ru/3.15/library/turtle.html#turtle.getcanvas)546547[`getshapes()`](https://python-all.ru/3.15/library/turtle.html#turtle.getshapes)548549[`register_shape()`](https://python-all.ru/3.15/library/turtle.html#turtle.register_shape)550551|552553[`addshape()`](https://python-all.ru/3.15/library/turtle.html#turtle.addshape)554555[`turtles()`](https://python-all.ru/3.15/library/turtle.html#turtle.turtles)556557[`window_height()`](https://python-all.ru/3.15/library/turtle.html#turtle.window_height)558559[`window_width()`](https://python-all.ru/3.15/library/turtle.html#turtle.window_width)560561**Методы ввода**562563[`textinput()`](https://python-all.ru/3.15/library/turtle.html#turtle.textinput)564565[`numinput()`](https://python-all.ru/3.15/library/turtle.html#turtle.numinput)566567**Методы, специфичные для Screen**568569[`bye()`](https://python-all.ru/3.15/library/turtle.html#turtle.bye)570571[`exitonclick()`](https://python-all.ru/3.15/library/turtle.html#turtle.exitonclick)572573[`save()`](https://python-all.ru/3.15/library/turtle.html#turtle.save)574575[`setup()`](https://python-all.ru/3.15/library/turtle.html#turtle.setup)576577[`title()`](https://python-all.ru/3.15/library/turtle.html#turtle.title)578579## Методы RawTurtle/Turtle и соответствующие функции580581Большинство примеров в этом разделе ссылаются на экземпляр Turtle с именем `turtle`.582583### Движение черепахи584585#### `turtle.forward(distance)`586587#### `turtle.fd(distance)`588589**Параметры:**590591**distance** – число (целое или с плавающей запятой)592593Перемещает черепаху вперед на указанное *distance*, в направлении, в котором черепаха смотрит.594595```pycon596>>> turtle.position()597(0.00,0.00)598>>> turtle.forward(25)599>>> turtle.position()600(25.00,0.00)601>>> turtle.forward(-75)602>>> turtle.position()603(-50.00,0.00)604```605606#### `turtle.back(distance)`607608#### `turtle.bk(distance)`609610#### `turtle.backward(distance)`611612**Параметры:**613614**distance** – число615616Перемещает черепаху назад на *расстояние*, противоположно направлению, в котором черепаха смотрит. Направление черепахи не меняется.617618```pycon619>>> turtle.position()620(0.00,0.00)621>>> turtle.backward(30)622>>> turtle.position()623(-30.00,0.00)624```625626#### `turtle.right(angle)`627628#### `turtle.rt(angle)`629630**Параметры:**631632**angle** – число (целое или с плавающей запятой)633634Поворачивает черепаху вправо на *angle* единиц. (По умолчанию единицы – градусы, но их можно изменить с помощью функций [`degrees()`](https://python-all.ru/3.15/library/turtle.html#turtle.degrees) и [`radians()`](https://python-all.ru/3.15/library/turtle.html#turtle.radians).) Направление поворота зависит от режима черепахи, см. [`mode()`](https://python-all.ru/3.15/library/turtle.html#turtle.mode).635636```pycon637>>> turtle.heading()63822.0639>>> turtle.right(45)640>>> turtle.heading()641337.0642```643644#### `turtle.left(angle)`645646#### `turtle.lt(angle)`647648**Параметры:**649650**angle** – число (целое или с плавающей запятой)651652Поворачивает черепаху влево на *angle* единиц. (По умолчанию единицы – градусы, но их можно изменить с помощью функций [`degrees()`](https://python-all.ru/3.15/library/turtle.html#turtle.degrees) и [`radians()`](https://python-all.ru/3.15/library/turtle.html#turtle.radians).) Направление поворота зависит от режима черепахи, см. [`mode()`](https://python-all.ru/3.15/library/turtle.html#turtle.mode).653654```pycon655>>> turtle.heading()65622.0657>>> turtle.left(45)658>>> turtle.heading()65967.0660```661662#### `turtle.goto(x, y=None)`663664#### `turtle.setpos(x, y=None)`665666#### `turtle.setposition(x, y=None)`667668**Параметры:**669670- **x** – число или пара/вектор чисел671- **y** – число или `None`672673Если *y* равно `None`, то *x* должно быть парой координат или [`Vec2D`](https://python-all.ru/3.15/library/turtle.html#turtle.Vec2D) (например, как возвращается функцией [`pos()`](https://python-all.ru/3.15/library/turtle.html#turtle.pos)).674675Перемещает черепаху в абсолютную позицию. Если перо опущено, рисует линию. Направление черепахи не меняется.676677```pycon678>>> tp = turtle.pos()679>>> tp680(0.00,0.00)681>>> turtle.setpos(60,30)682>>> turtle.pos()683(60.00,30.00)684>>> turtle.setpos((20,80))685>>> turtle.pos()686(20.00,80.00)687>>> turtle.setpos(tp)688>>> turtle.pos()689(0.00,0.00)690```691692#### `turtle.teleport(x, y=None, *, fill_gap=False)`693694**Параметры:**695696- **x** – число или `None`697- **y** – число или `None`698- **fill\_gap** – логическое значение699700Перемещает черепаху в абсолютную позицию. В отличие от goto(x, y), линия не рисуется. Направление черепахи не меняется. Если в данный момент выполняется заливка, многоугольник(и), из которого телепортировали, будут залиты после выхода, и заливка начнется снова после телепортации. Это можно отключить с помощью fill\_gap=True, что делает воображаемую линию, пройденную во время телепортации, барьером заливки, как в goto(x, y).701702```pycon703>>> tp = turtle.pos()704>>> tp705(0.00,0.00)706>>> turtle.teleport(60)707>>> turtle.pos()708(60.00,0.00)709>>> turtle.teleport(y=10)710>>> turtle.pos()711(60.00,10.00)712>>> turtle.teleport(20, 30)713>>> turtle.pos()714(20.00,30.00)715```716717Добавлено в версии 3.12.718719#### `turtle.setx(x)`720721**Параметры:**722723**x** – число (целое или с плавающей запятой)724725Устанавливает первую координату черепахи в *x*, вторая координата остается без изменений.726727```pycon728>>> turtle.position()729(0.00,240.00)730>>> turtle.setx(10)731>>> turtle.position()732(10.00,240.00)733```734735#### `turtle.sety(y)`736737**Параметры:**738739**y** – число (целое или с плавающей запятой)740741Устанавливает вторую координату черепахи в *y*, первая координата остается без изменений.742743```pycon744>>> turtle.position()745(0.00,40.00)746>>> turtle.sety(-10)747>>> turtle.position()748(0.00,-10.00)749```750751#### `turtle.setheading(to_angle)`752753#### `turtle.seth(to_angle)`754755**Параметры:**756757**to\_angle** – число (целое или с плавающей запятой)758759Устанавливает направление черепахи в *to\_angle*. Вот некоторые распространенные направления в градусах:760761| стандартный режим | режим Logo |762| --- | --- |763| 0 – восток | 0 – север |764| 90 – север | 90 – восток |765| 180 – запад | 180 – юг |766| 270 – юг | 270 – запад |767768```pycon769>>> turtle.setheading(90)770>>> turtle.heading()77190.0772```773774#### `turtle.home()`775776Перемещает черепаху в начало координат – (0,0) – и устанавливает её направление в начальную ориентацию (зависит от режима, см. [`mode()`](https://python-all.ru/3.15/library/turtle.html#turtle.mode)).777778```pycon779>>> turtle.heading()78090.0781>>> turtle.position()782(0.00,-10.00)783>>> turtle.home()784>>> turtle.position()785(0.00,0.00)786>>> turtle.heading()7870.0788```789790#### `turtle.circle(radius, extent=None, steps=None)`791792**Параметры:**793794- **radius** – число795- **extent** – число (или `None`)796- **steps** – целое число (или `None`)797798Рисует окружность с заданным *radius*. Центр находится на *radius* единиц левее черепахи; *extent* – угол – определяет, какая часть окружности рисуется. Если *extent* не указан, рисуется вся окружность. Если *extent* не является полной окружностью, одна из конечных точек дуги – это текущее положение пера. Дуга рисуется против часовой стрелки, если *radius* положительный, и по часовой стрелке в противном случае. В конце направление черепахи изменяется на величину *extent*.799800Поскольку окружность аппроксимируется вписанным правильным многоугольником, *steps* определяет количество используемых шагов. Если не указано, вычисляется автоматически. Может использоваться для рисования правильных многоугольников.801802```pycon803>>> turtle.home()804>>> turtle.position()805(0.00,0.00)806>>> turtle.heading()8070.0808>>> turtle.circle(50)809>>> turtle.position()810(-0.00,0.00)811>>> turtle.heading()8120.0813>>> turtle.circle(120, 180)  # нарисовать полуокружность814>>> turtle.position()815(0.00,240.00)816>>> turtle.heading()817180.0818```819820#### `turtle.dot()`821822#### `turtle.dot(size)`823824#### `turtle.dot(color, /)`825826#### `turtle.dot(size, color, /)`827828#### `turtle.dot(size, r, g, b, /)`829830**Параметры:**831832- **size** – целое число \>= 1 (если указано)833- **color** – строка цвета или кортеж числовых цветов834835Рисует круглую точку диаметром *size*, используя *color*. Если *size* не указан, используется максимум из `pensize+4` и `2*pensize`.836837```pycon838>>> turtle.home()839>>> turtle.dot()840>>> turtle.fd(50); turtle.dot(20, "blue"); turtle.fd(50)841>>> turtle.position()842(100.00,-0.00)843>>> turtle.heading()8440.0845```846847#### `turtle.stamp()`848849Наносит копию формы черепахи на холст в текущей позиции черепахи. Возвращает stamp\_id для этой печати, который можно использовать для её удаления вызовом `clearstamp(stamp_id)`.850851```pycon852>>> turtle.color("blue")853>>> stamp_id = turtle.stamp()854>>> turtle.fd(50)855```856857#### `turtle.clearstamp(stampid)`858859**Параметры:**860861**stampid** – целое число, должно быть возвращаемым значением предыдущего вызова [`stamp()`](https://python-all.ru/3.15/library/turtle.html#turtle.stamp)862863Удаляет печать с заданным *stampid*.864865```pycon866>>> turtle.position()867(150.00,-0.00)868>>> turtle.color("blue")869>>> astamp = turtle.stamp()870>>> turtle.fd(50)871>>> turtle.position()872(200.00,-0.00)873>>> turtle.clearstamp(astamp)874>>> turtle.position()875(200.00,-0.00)876```877878#### `turtle.clearstamps(n=None)`879880**Параметры:**881882**n** – целое число (или `None`)883884Удаляет все или первые/последние *n* отпечатков черепашки. Если *n* равно `None`, удаляет все отпечатки, если *n* \> 0, удаляет первые *n* отпечатков, а если *n* \< 0, удаляет последние *n* отпечатков.885886```pycon887>>> for i in range(8):888...     unused_stamp_id = turtle.stamp()889...     turtle.fd(30)890>>> turtle.clearstamps(2)891>>> turtle.clearstamps(-2)892>>> turtle.clearstamps()893```894895#### `turtle.undo()`896897Отменяет (повторно) последнее(ие) действие(я) черепашки. Количество доступных действий отмены определяется размером буфера отмены.898899```pycon900>>> for i in range(4):901...     turtle.fd(50); turtle.lt(80)902...903>>> for i in range(8):904...     turtle.undo()905```906907#### `turtle.speed(speed=None)`908909**Параметры:**910911**speed** – целое число в диапазоне 0..10 или speedstring (см. ниже).912913Устанавливает скорость черепашки в целое значение от 0 до 10. Если аргумент не указан, возвращает текущую скорость.914915Если входное значение – число больше 10 или меньше 0.5, скорость устанавливается в 0. Speedstrings сопоставляются со значениями скорости следующим образом:916917- «самый быстрый»: 0918- «быстрый»: 10919- “обычная”: 6920- “медленная”: 3921- “самая медленная”: 1922923Скорости от 1 до 10 обеспечивают всё более быструю анимацию рисования линий и поворотов черепашки.924925Внимание: *speed* = 0 означает, что *никакой* анимации не происходит. forward/back заставляют черепашку прыгать, а left/right заставляют черепашку мгновенно поворачиваться.926927```pycon928>>> turtle.speed()9293930>>> turtle.speed('normal')931>>> turtle.speed()9326933>>> turtle.speed(9)934>>> turtle.speed()9359936```937938### Состояние черепашки939940#### `turtle.position()`941942#### `turtle.pos()`943944Возвращает текущее положение черепашки (x,y) (в виде [`Vec2D`](https://python-all.ru/3.15/library/turtle.html#turtle.Vec2D) вектора).945946```pycon947>>> turtle.pos()948(440.00,-0.00)949```950951#### `turtle.towards(x, y=None)`952953**Параметры:**954955- **x** – число или пара/вектор чисел, или экземпляр черепашки956- **y** – число, если *x* – число, иначе `None`957958Возвращает угол между линией от положения черепашки до точки, указанной через (x,y), указанного вектора или другой черепашки. Это зависит от начальной ориентации черепашки, которая зависит от режима – “standard”/“world” или “logo”.959960```pycon961>>> turtle.goto(10, 10)962>>> turtle.towards(0,0)963225.0964```965966#### `turtle.xcor()`967968Возвращает x-координату черепашки.969970```pycon971>>> turtle.home()972>>> turtle.left(50)973>>> turtle.forward(100)974>>> turtle.pos()975(64.28,76.60)976>>> print(round(turtle.xcor(), 5))97764.27876978```979980#### `turtle.ycor()`981982Возвращает y-координату черепашки.983984```pycon985>>> turtle.home()986>>> turtle.left(60)987>>> turtle.forward(100)988>>> print(turtle.pos())989(50.00,86.60)990>>> print(round(turtle.ycor(), 5))99186.60254992```993994#### `turtle.heading()`995996Возвращает текущий курс черепашки (значение зависит от режима черепашки, см. [`mode()`](https://python-all.ru/3.15/library/turtle.html#turtle.mode)).997998```pycon999>>> turtle.home()1000>>> turtle.left(67)1001>>> turtle.heading()100267.01003```10041005#### `turtle.distance(x, y=None)`10061007**Параметры:**10081009- **x** – число или пара/вектор чисел, или экземпляр черепашки1010- **y** – число, если *x* – число, иначе `None`10111012Возвращает расстояние от черепашки до точки (x,y), указанного вектора или указанной другой черепашки в единицах шага черепашки.10131014```pycon1015>>> turtle.home()1016>>> turtle.distance(30,40)101750.01018>>> turtle.distance((30,40))101950.01020>>> joe = Turtle()1021>>> joe.forward(77)1022>>> turtle.distance(joe)102377.01024```10251026### Настройки измерения10271028#### `turtle.degrees(fullcircle=360.0)`10291030**Параметры:**10311032**fullcircle** – число10331034Устанавливает единицы измерения углов, то есть задаёт количество «градусов» в полном обороте. Значение по умолчанию – 360 градусов.10351036```pycon1037>>> turtle.home()1038>>> turtle.left(90)1039>>> turtle.heading()104090.010411042>>> # Изменить единицу измерения угла на град (также известный как гон,1043>>> # град, или градиан, и равная 1/100 прямого угла.)1044>>> turtle.degrees(400.0)1045>>> turtle.heading()1046100.01047>>> turtle.degrees(360)1048>>> turtle.heading()104990.01050```10511052#### `turtle.radians()`10531054Устанавливает единицы измерения углов в радианах. Эквивалентно `degrees(2*math.pi)`.10551056```pycon1057>>> turtle.home()1058>>> turtle.left(90)1059>>> turtle.heading()106090.01061>>> turtle.radians()1062>>> turtle.heading()10631.57079632679489661064```10651066### Управление пером10671068#### Состояние рисования10691070#### `turtle.pendown()`10711072#### `turtle.pd()`10731074#### `turtle.down()`10751076Опускает перо – рисование при движении.10771078#### `turtle.penup()`10791080#### `turtle.pu()`10811082#### `turtle.up()`10831084Поднимает перо – при движении не рисует.10851086#### `turtle.pensize(width=None)`10871088#### `turtle.width(width=None)`10891090**Параметры:**10911092**width** – положительное число10931094Устанавливает толщину линии в *width* или возвращает её. Если для resizemode установлено «auto» и форма черепашки является многоугольником, этот многоугольник рисуется с такой же толщиной линии. Если аргумент не указан, возвращается текущая толщина пера.10951096```pycon1097>>> turtle.pensize()109811099>>> turtle.pensize(10)   # отсюда рисуются линии шириной 101100```11011102#### `turtle.pen(pen=None, **pendict)`11031104**Параметры:**11051106- **pen** – словарь, содержащий некоторые или все из перечисленных ниже ключей1107- **pendict** – один или несколько именованных аргументов, использующих перечисленные ниже ключи11081109Возвращает или устанавливает атрибуты пера в виде «словаря пера» со следующими парами ключ/значение:11101111- “отображается”: True/False1112- “перо опущено”: True/False1113- “цвет пера”: строка цвета или кортеж цвета1114- “цвет заливки”: строка цвета или кортеж цвета1115- “размер пера”: положительное число1116- “скорость”: число от 0 до 101117- “режим изменения размера”: “auto” or “user” or “noresize”1118- “коэффициент растяжения”: (положительное число, положительное число)1119- «outline»: положительное число1120- «tilt»: число11211122Этот словарь можно передать аргументом в последующий вызов `pen()`, чтобы восстановить предыдущее состояние пера. Кроме того, один или несколько из этих атрибутов можно указать как именованные аргументы. Это позволяет установить несколько атрибутов пера одной инструкцией.11231124```pycon1125>>> turtle.pen(fillcolor="black", pencolor="red", pensize=10)1126>>> sorted(turtle.pen().items())1127[('fillcolor', 'black'), ('outline', 1), ('pencolor', 'red'),1128 ('pendown', True), ('pensize', 10), ('resizemode', 'noresize'),1129 ('shearfactor', 0.0), ('shown', True), ('speed', 9),1130 ('stretchfactor', (1.0, 1.0)), ('tilt', 0.0)]1131>>> penstate=turtle.pen()1132>>> turtle.color("yellow", "")1133>>> turtle.penup()1134>>> sorted(turtle.pen().items())[:3]1135[('fillcolor', ''), ('outline', 1), ('pencolor', 'yellow')]1136>>> turtle.pen(penstate, fillcolor="green")1137>>> sorted(turtle.pen().items())[:3]1138[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]1139```11401141#### `turtle.isdown()`11421143Возвращает `True`, если перо опущено, и `False`, если поднято.11441145```pycon1146>>> turtle.penup()1147>>> turtle.isdown()1148False1149>>> turtle.pendown()1150>>> turtle.isdown()1151True1152```11531154#### Управление цветом11551156#### `turtle.pencolor()`11571158#### `turtle.pencolor(color, /)`11591160#### `turtle.pencolor(r, g, b, /)`11611162Возвращает или задаёт цвет пера.11631164Допускаются четыре формата ввода:11651166**`pencolor()`**11671168Возвращает текущий цвет пера в виде строки описания цвета или кортежа (см. пример). Может использоваться как аргумент для другого вызова color/pencolor/fillcolor/bgcolor.11691170**`pencolor(colorstring)`**11711172Задаёт цвет пера равным *colorstring*, строке описания цвета Tk, например, `"red"`, `"yellow"` или `"#33cc8c"`.11731174**`pencolor((r, g, b))`**11751176Задаёт цвет пера по цвету RGB, представленному кортежем из *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode, где colormode равен 1.0 или 255 (см. [`colormode()`](https://python-all.ru/3.15/library/turtle.html#turtle.colormode)).11771178**`pencolor(r, g, b)`**11791180Задаёт цвет пера по цвету RGB, заданному *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode.11811182Если форма черепахи (turtleshape) является многоугольником, то контур этого многоугольника рисуется вновь заданным цветом пера.11831184```pycon1185>>> colormode()11861.01187>>> turtle.pencolor()1188'red'1189>>> turtle.pencolor("brown")1190>>> turtle.pencolor()1191'brown'1192>>> tup = (0.2, 0.8, 0.55)1193>>> turtle.pencolor(tup)1194>>> turtle.pencolor()1195(0.2, 0.8, 0.5490196078431373)1196>>> colormode(255)1197>>> turtle.pencolor()1198(51.0, 204.0, 140.0)1199>>> turtle.pencolor('#32c18f')1200>>> turtle.pencolor()1201(50.0, 193.0, 143.0)1202```12031204#### `turtle.fillcolor()`12051206#### `turtle.fillcolor(color, /)`12071208#### `turtle.fillcolor(r, g, b, /)`12091210Возвращает или задаёт цвет заливки.12111212Допускаются четыре формата ввода:12131214**`fillcolor()`**12151216Возвращает текущий цвет заливки в виде строки описания цвета, возможно в формате кортежа (см. пример). Может использоваться как аргумент для другого вызова color/pencolor/fillcolor/bgcolor.12171218**`fillcolor(colorstring)`**12191220Задаёт цвет заливки равным *colorstring*, строке описания цвета Tk, например, `"red"`, `"yellow"` или `"#33cc8c"`.12211222**`fillcolor((r, g, b))`**12231224Задаёт цвет заливки по цвету RGB, представленному кортежем из *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode, где colormode равен 1.0 или 255 (см. [`colormode()`](https://python-all.ru/3.15/library/turtle.html#turtle.colormode)).12251226**`fillcolor(r, g, b)`**12271228Задаёт цвет заливки по цвету RGB, заданному *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode.12291230Если форма черепахи (turtleshape) является многоугольником, то внутренняя область этого многоугольника закрашивается вновь заданным цветом заливки.12311232```pycon1233>>> turtle.fillcolor("violet")1234>>> turtle.fillcolor()1235'violet'1236>>> turtle.pencolor()1237(50.0, 193.0, 143.0)1238>>> turtle.fillcolor((50, 193, 143))  # Целые числа, не числа с плавающей точкой1239>>> turtle.fillcolor()1240(50.0, 193.0, 143.0)1241>>> turtle.fillcolor('#ffffff')1242>>> turtle.fillcolor()1243(255.0, 255.0, 255.0)1244```12451246#### `turtle.color()`12471248#### `turtle.color(color, /)`12491250#### `turtle.color(r, g, b, /)`12511252#### `turtle.color(pencolor, fillcolor, /)`12531254Возвращает или задаёт цвет пера и цвет заливки.12551256Допускается несколько форматов ввода. Они используют от 0 до 3 аргументов следующим образом:12571258**`color()`**12591260Возвращает текущий цвет пера и текущий цвет заливки в виде пары строк или кортежей с описанием цвета, как в [`pencolor()`](https://python-all.ru/3.15/library/turtle.html#turtle.pencolor) и [`fillcolor()`](https://python-all.ru/3.15/library/turtle.html#turtle.fillcolor).12611262**`color(colorstring)`, `color((r,g,b))`, `color(r,g,b)`**12631264Аргументы как в [`pencolor()`](https://python-all.ru/3.15/library/turtle.html#turtle.pencolor); устанавливает и fillcolor, и pencolor в указанное значение.12651266**`color(colorstring1, colorstring2)`, `color((r1,g1,b1), (r2,g2,b2))`**12671268Эквивалентно `pencolor(colorstring1)` и `fillcolor(colorstring2)`, а также аналогично при использовании другого формата ввода.12691270Если форма черепахи – многоугольник, его контур и внутренняя область рисуются новыми установленными цветами.12711272```pycon1273>>> turtle.color("red", "green")1274>>> turtle.color()1275('red', 'green')1276>>> color("#285078", "#a0c8f0")1277>>> color()1278((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))1279```12801281См. также: метод Screen [`colormode()`](https://python-all.ru/3.15/library/turtle.html#turtle.colormode).12821283#### Заливка12841285#### `turtle.filling()`12861287Возвращает состояние заливки (`True`, если заливка активна, иначе `False`).12881289```pycon1290>>> turtle.begin_fill()1291>>> if turtle.filling():1292...    turtle.pensize(5)1293... else:1294...    turtle.pensize(3)1295```12961297#### `turtle.fill()`12981299Заливает фигуру, нарисованную в блоке `with turtle.fill():`.13001301```pycon1302>>> turtle.color("black", "red")1303>>> with turtle.fill():1304...     turtle.circle(80)1305```13061307Использование `fill()` эквивалентно добавлению [`begin_fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.begin_fill) перед блоком заливки и [`end_fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.end_fill) после блока заливки.13081309```pycon1310>>> turtle.color("black", "red")1311>>> turtle.begin_fill()1312>>> turtle.circle(80)1313>>> turtle.end_fill()1314```13151316Добавлено в версии 3.14.13171318#### `turtle.begin_fill()`13191320Вызывается непосредственно перед рисованием фигуры, которую нужно залить.13211322#### `turtle.end_fill()`13231324Заливает фигуру, нарисованную после последнего вызова [`begin_fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.begin_fill).13251326Будут ли залиты области пересечения для самопересекающихся многоугольников или нескольких фигур, зависит от графической подсистемы операционной системы, типа пересечения и количества пересечений. Например, звезда черепахи выше может быть либо полностью жёлтой, либо содержать белые области.13271328```pycon1329>>> turtle.color("black", "red")1330>>> turtle.begin_fill()1331>>> turtle.circle(80)1332>>> turtle.end_fill()1333```13341335#### Дополнительное управление рисованием13361337#### `turtle.reset()`13381339Удаляет рисунки черепахи с экрана, перемещает черепаху в центр и сбрасывает переменные в значения по умолчанию.13401341```pycon1342>>> turtle.goto(0,-22)1343>>> turtle.left(100)1344>>> turtle.position()1345(0.00,-22.00)1346>>> turtle.heading()1347100.01348>>> turtle.reset()1349>>> turtle.position()1350(0.00,0.00)1351>>> turtle.heading()13520.01353```13541355#### `turtle.clear()`13561357Удаляет рисунки черепахи с экрана. Черепаха не перемещается. Состояние и положение черепахи, а также рисунки других черепах не затрагиваются.13581359#### `turtle.write(arg, move=False, align='left', font=('Arial', 8, 'normal'))`13601361**Параметры:**13621363- **arg** – объект, который будет записан на TurtleScreen.1364- **move** – True/False1365- **align** – одна из строк: «left», «center» или «right».1366- **font** – тройка (имя\_шрифта, размер\_шрифта, тип\_шрифта)13671368Записывает текст (строковое представление *arg*) в текущей позиции черепахи в соответствии с выравниванием *align* («left», «center» или «right») и указанным шрифтом. Если *move* истинно, перо перемещается в правый нижний угол текста. По умолчанию *move* равно `False`.13691370```python1371>>> turtle.write("Home = ", True, align="center")1372>>> turtle.write((0,0), True)1373```13741375### Состояние черепахи13761377#### Видимость13781379#### `turtle.hideturtle()`13801381#### `turtle.ht()`13821383Делает черепаху невидимой. Рекомендуется делать это во время выполнения сложного рисунка, потому что скрытие черепахи заметно ускоряет рисование.13841385```pycon1386>>> turtle.hideturtle()1387```13881389#### `turtle.showturtle()`13901391#### `turtle.st()`13921393Делает черепаху видимой.13941395```pycon1396>>> turtle.showturtle()1397```13981399#### `turtle.isvisible()`14001401Возвращает `True`, если черепаха показана, и `False`, если она скрыта.14021403```python1404>>> turtle.hideturtle()1405>>> turtle.isvisible()1406False1407>>> turtle.showturtle()1408>>> turtle.isvisible()1409True1410```14111412#### Внешний вид14131414#### `turtle.shape(name=None)`14151416**Параметры:**14171418**name** – a string which is a valid shapename14191420Устанавливает форму черепахи как форму с заданным *name* или, если имя не указано, возвращает имя текущей формы. Форма с именем *name* должна существовать в словаре форм TurtleScreen. Изначально доступны следующие многоугольные формы: «стрелка», «черепаха», «круг», «квадрат», «треугольник», «классическая». Чтобы узнать, как работать с формами, см. метод Screen [`register_shape()`](https://python-all.ru/3.15/library/turtle.html#turtle.register_shape).14211422```pycon1423>>> turtle.shape()1424'classic'1425>>> turtle.shape("turtle")1426>>> turtle.shape()1427'turtle'1428```14291430#### `turtle.resizemode(rmode=None)`14311432**Параметры:**14331434**rmode** – one of the strings “auto”, “user”, “noresize”14351436Устанавливает режим изменения размера в одно из значений: «авто», «пользователь», «без изменения размера». Если *rmode* не указан, возвращает текущий режим изменения размера. Разные режимы изменения размера имеют следующие эффекты:14371438- “auto”: adapts the appearance of the turtle corresponding to the value of pensize.1439- “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.15/library/turtle.html#turtle.shapesize).1440- «без изменения размера»: адаптация внешнего вида черепахи не производится.14411442`resizemode("user")` вызывается [`shapesize()`](https://python-all.ru/3.15/library/turtle.html#turtle.shapesize) при использовании с аргументами.14431444```pycon1445>>> turtle.resizemode()1446'noresize'1447>>> turtle.resizemode("auto")1448>>> turtle.resizemode()1449'auto'1450```14511452#### `turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None)`14531454#### `turtle.turtlesize(stretch_wid=None, stretch_len=None, outline=None)`14551456**Параметры:**14571458- **stretch\_wid** – положительное число1459- **stretch\_len** – положительное число1460- **outline** – положительное число14611462Возвращает или задаёт атрибуты пера: коэффициенты растяжения по x/y и/или контур. Устанавливает режим изменения размера в «пользователь». Если и только если режим изменения размера установлен в «пользователь», черепаха будет отображаться растянутой в соответствии с её коэффициентами растяжения: *stretch\_wid* – коэффициент растяжения перпендикулярно её ориентации, *stretch\_len* – коэффициент растяжения в направлении её ориентации, *outline* определяет ширину контура формы.14631464```pycon1465>>> turtle.shapesize()1466(1.0, 1.0, 1)1467>>> turtle.resizemode("user")1468>>> turtle.shapesize(5, 5, 12)1469>>> turtle.shapesize()1470(5, 5, 12)1471>>> turtle.shapesize(outline=8)1472>>> turtle.shapesize()1473(5, 5, 8)1474```14751476#### `turtle.shearfactor(shear=None)`14771478**Параметры:**14791480**shear** – число (необязательно)14811482Set 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.14831484```pycon1485>>> turtle.shape("circle")1486>>> turtle.shapesize(5,2)1487>>> turtle.shearfactor(0.5)1488>>> turtle.shearfactor()14890.51490```14911492#### `turtle.tilt(angle)`14931494**Параметры:**14951496**angle** – a number14971498Повернуть форму черепахи на *angle* от текущего угла наклона, но *не* изменять направление черепахи (направление движения).14991500```pycon1501>>> turtle.reset()1502>>> turtle.shape("circle")1503>>> turtle.shapesize(5,2)1504>>> turtle.tilt(30)1505>>> turtle.fd(50)1506>>> turtle.tilt(30)1507>>> turtle.fd(50)1508```15091510#### `turtle.tiltangle(angle=None)`15111512**Параметры:**15131514**angle** – число (необязательно)15151516Устанавливает или возвращает текущий угол наклона. Если задан угол, поворачивает форму черепахи, чтобы она указывала в направлении, заданном углом, независимо от текущего угла наклона, но *не* изменять направление черепахи (направление движения). Если угол не задан: возвращает текущий угол наклона, то есть угол между ориентацией формы черепахи и направлением черепахи (её направлением движения).15171518```pycon1519>>> turtle.reset()1520>>> turtle.shape("circle")1521>>> turtle.shapesize(5,2)1522>>> turtle.tilt(45)1523>>> turtle.tiltangle()152445.01525```15261527#### `turtle.shapetransform(t11=None, t12=None, t21=None, t22=None)`15281529**Параметры:**15301531- **t11** – число (необязательно)1532- **t12** – число (необязательно)1533- **t21** – число (необязательно)1534- **t12** – число (необязательно)15351536Задаёт или возвращает текущую матрицу преобразования формы черепашки.15371538Если ни один из элементов матрицы не задан, возвращает матрицу преобразования в виде кортежа из 4 элементов. В противном случае задаёт указанные элементы и преобразует форму черепашки согласно матрице, состоящей из первой строки t11, t12 и второй строки t21, t22. Определитель t11 \* t22 - t12 \* t21 не должен быть равен нулю, иначе будет вызвана ошибка. Изменяет stretchfactor, shearfactor и tiltangle в соответствии с заданной матрицей.15391540```pycon1541>>> turtle = Turtle()1542>>> turtle.shape("square")1543>>> turtle.shapesize(4,2)1544>>> turtle.shearfactor(-0.5)1545>>> turtle.shapetransform()1546(4.0, -1.0, -0.0, 2.0)1547```15481549#### `turtle.get_shapepoly()`15501551Возвращает текущий многоугольник формы в виде кортежа пар координат. Это можно использовать для определения новой формы или компонентов составной формы.15521553```pycon1554>>> turtle.shape("square")1555>>> turtle.shapetransform(4, -1, 0, 2)1556>>> turtle.get_shapepoly()1557((50, -20), (30, 20), (-50, 20), (-30, -20))1558```15591560### Использование событий15611562#### `turtle.onclick(fun, btn=1, add=None)`15631564**Параметры:**15651566- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1567- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1568- **add**`True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку15691570Привязывает *fun* к событиям щелчка мыши на этой черепашке. Если *fun* равно `None`, существующие привязки удаляются. Пример для анонимной черепашки, т.е. процедурного способа:15711572```pycon1573>>> def turn(x, y):1574...     left(180)1575...1576>>> onclick(turn)  # Теперь щелчок по черепашке повернёт её.1577>>> onclick(None)  # привязка события будет удалена1578```15791580#### `turtle.onrelease(fun, btn=1, add=None)`15811582**Параметры:**15831584- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1585- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1586- **add**`True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку15871588Привязывает *fun* к событиям отпускания кнопки мыши на этой черепашке. Если *fun* равно `None`, существующие привязки удаляются.15891590```pycon1591>>> class MyTurtle(Turtle):1592...     def glow(self,x,y):1593...         self.fillcolor("red")1594...     def unglow(self,x,y):1595...         self.fillcolor("")1596...1597>>> turtle = MyTurtle()1598>>> turtle.onclick(turtle.glow)     # нажатие на черепашку меняет цвет заливки на красный,1599>>> turtle.onrelease(turtle.unglow) # отпускание делает его прозрачным.1600```16011602#### `turtle.ondrag(fun, btn=1, add=None)`16031604**Параметры:**16051606- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1607- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1608- **add**`True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку16091610Привязывает *fun* к событиям перемещения мыши на этой черепашке. Если *fun* равно `None`, существующие привязки удаляются.16111612Примечание: Каждая последовательность событий перемещения мыши на черепашке предваряется событием щелчка мыши на этой черепашке.16131614```pycon1615>>> turtle.ondrag(turtle.goto)1616```16171618После этого щелчок и перетаскивание черепашки будет перемещать её по экрану, создавая рисунки от руки (если перо опущено).16191620### Специальные методы черепашки16211622#### `turtle.poly()`16231624Записывает вершины многоугольника, нарисованного в блоке `with turtle.poly():`. Первая и последняя вершины будут соединены.16251626```pycon1627>>> with turtle.poly():1628...     turtle.forward(100)1629...     turtle.right(60)1630...     turtle.forward(100)1631```16321633Добавлено в версии 3.14.16341635#### `turtle.begin_poly()`16361637Начинает запись вершин многоугольника. Текущая позиция черепашки является первой вершиной многоугольника.16381639#### `turtle.end_poly()`16401641Остановить запись вершин многоугольника. Текущая позиция черепашки – последняя вершина многоугольника. Она будет соединена с первой вершиной.16421643#### `turtle.get_poly()`16441645Возвращает последний записанный многоугольник.16461647```pycon1648>>> turtle.home()1649>>> turtle.begin_poly()1650>>> turtle.fd(100)1651>>> turtle.left(20)1652>>> turtle.fd(30)1653>>> turtle.left(60)1654>>> turtle.fd(50)1655>>> turtle.end_poly()1656>>> p = turtle.get_poly()1657>>> register_shape("myFavouriteShape", p)1658```16591660#### `turtle.clone()`16611662Создаёт и возвращает клон черепашки с теми же координатами, направлением и свойствами черепашки.16631664```pycon1665>>> mick = Turtle()1666>>> joe = mick.clone()1667```16681669#### `turtle.getturtle()`16701671#### `turtle.getpen()`16721673Возвращает сам объект Turtle. Единственное разумное применение – как функция для возврата «анонимной черепашки»:16741675```pycon1676>>> pet = getturtle()1677>>> pet.fd(50)1678>>> pet1679<turtle.Turtle object at 0x...>1680```16811682#### `turtle.getscreen()`16831684Возвращает объект [`TurtleScreen`](https://python-all.ru/3.15/library/turtle.html#turtle.TurtleScreen), на котором черепашка рисует. Затем для этого объекта можно вызывать методы TurtleScreen.16851686```pycon1687>>> ts = turtle.getscreen()1688>>> ts1689<turtle._Screen object at 0x...>1690>>> ts.bgcolor("pink")1691```16921693#### `turtle.setundobuffer(size)`16941695**Параметры:**16961697**size** – целое число или `None`16981699Устанавливает или отключает буфер отмены. Если *size* – целое число, создаётся пустой буфер отмены указанного размера. *size* задаёт максимальное количество действий черепашки, которые можно отменить с помощью метода/функции [`undo()`](https://python-all.ru/3.15/library/turtle.html#turtle.undo). Если *size* равно `None`, буфер отмены отключается.17001701```pycon1702>>> turtle.setundobuffer(42)1703```17041705#### `turtle.undobufferentries()`17061707Возвращает количество записей в буфере отмены.17081709```pycon1710>>> while undobufferentries():1711...     undo()1712```17131714### Составные фигуры17151716Для использования составных фигур черепашки, состоящих из нескольких многоугольников разного цвета, необходимо явно использовать вспомогательный класс [`Shape`](https://python-all.ru/3.15/library/turtle.html#turtle.Shape), как описано ниже:171717181. Создаёт пустой объект Shape типа «compound».17192. Добавьте в этот объект необходимое количество компонентов с помощью метода [`addcomponent()`](https://python-all.ru/3.15/library/turtle.html#turtle.Shape.addcomponent).17201721   Например:17221723   ```pycon1724   >>> s = Shape("compound")1725   >>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))1726   >>> s.addcomponent(poly1, "red", "blue")1727   >>> poly2 = ((0,0),(10,-5),(-10,-5))1728   >>> s.addcomponent(poly2, "blue", "red")1729   ```17303. Теперь добавьте Shape в список фигур экрана и используйте его:17311732   ```pycon1733   >>> register_shape("myshape", s)1734   >>> shape("myshape")1735   ```17361737> **Примечание**1738>1739> Класс [`Shape`](https://python-all.ru/3.15/library/turtle.html#turtle.Shape) используется внутри метода [`register_shape()`](https://python-all.ru/3.15/library/turtle.html#turtle.register_shape) разными способами. Разработчику приложения приходится иметь дело с классом Shape *только* при использовании составных фигур, как показано выше!17401741## Методы TurtleScreen/Screen и соответствующие функции17421743Большинство примеров в этом разделе относятся к экземпляру TurtleScreen с именем `screen`.17441745### Управление окном17461747#### `turtle.bgcolor()`17481749#### `turtle.bgcolor(color, /)`17501751#### `turtle.bgcolor(r, g, b, /)`17521753Возвращает или устанавливает цвет фона TurtleScreen.17541755Допускаются четыре формата ввода:17561757**`bgcolor()`**17581759Возвращает текущий цвет фона в виде строки спецификации цвета или кортежа (см. пример). Может использоваться как входные данные для другого вызова color/pencolor/fillcolor/bgcolor.17601761**`bgcolor(colorstring)`**17621763Устанавливает цвет фона в *colorstring*, строку спецификации цвета Tk, например `"red"`, `"yellow"` или `"#33cc8c"`.17641765**`bgcolor((r, g, b))`**17661767Устанавливает цвет фона в RGB-цвет, представленный кортежем *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode, где colormode равен 1.0 или 255 (см. [`colormode()`](https://python-all.ru/3.15/library/turtle.html#turtle.colormode)).17681769**`bgcolor(r, g, b)`**17701771Устанавливает цвет фона в RGB-цвет, представленный *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно находиться в диапазоне 0..colormode.17721773```pycon1774>>> screen.bgcolor("orange")1775>>> screen.bgcolor()1776'orange'1777>>> screen.bgcolor("#800080")1778>>> screen.bgcolor()1779(128.0, 0.0, 128.0)1780```17811782#### `turtle.bgpic(picname=None)`17831784**Параметры:**17851786**picname** – строка, имя файла изображения (PNG, GIF, PGM и PPM) или `"nopic"`, или `None`17871788Устанавливает фоновое изображение или возвращает имя текущего фонового изображения. Если *picname* – имя файла, устанавливает соответствующее изображение как фон. Если *picname* равно `"nopic"`, удаляет фоновое изображение, если оно есть. Если *picname* равно `None`, возвращает имя файла текущего фонового изображения.17891790```python1791>>> screen.bgpic()1792'nopic'1793>>> screen.bgpic("landscape.gif")1794>>> screen.bgpic()1795"landscape.gif"1796```17971798#### `turtle.clear()`17991800> **Примечание**1801>1802> Этот метод TurtleScreen доступен как глобальная функция только под именем `clearscreen`. Глобальная функция `clear` – другая, производная от метода Turtle `clear`.18031804#### `turtle.clearscreen()`18051806Удаляет все рисунки и всех черепах с TurtleScreen. Сбрасывает теперь пустой TurtleScreen в исходное состояние: белый фон, без фонового изображения, без привязок событий и с включённой трассировкой.18071808#### `turtle.reset()`18091810> **Примечание**1811>1812> Этот метод TurtleScreen доступен как глобальная функция только под именем `resetscreen`. Глобальная функция `reset` – это другая, производная от метода Turtle `reset`.18131814#### `turtle.resetscreen()`18151816Сбрасывает всех черепах на экране в исходное состояние.18171818#### `turtle.screensize(canvwidth=None, canvheight=None, bg=None)`18191820**Параметры:**18211822- **canvwidth** – положительное целое, новая ширина холста в пикселях1823- **canvheight** – положительное целое, новая высота холста в пикселях1824- **bg** – строка цвета или кортеж цвета, новый цвет фона18251826Если аргументы не переданы, возвращает текущие (canvaswidth, canvasheight). В противном случае изменяет размер холста, на котором рисуют черепахи. Не изменяет окно рисования. Для просмотра скрытых частей холста используйте полосы прокрутки. С помощью этого метода можно сделать видимыми те части рисунка, которые раньше находились за пределами холста.18271828```python1829>>> screen.screensize()1830(400, 300)1831>>> screen.screensize(2000,1500)1832>>> screen.screensize()1833(2000, 1500)1834```18351836например, для поиска случайно сбежавшей черепахи ;-)18371838#### `turtle.setworldcoordinates(llx, lly, urx, ury)`18391840**Параметры:**18411842- **llx** – число, x-координата левого нижнего угла холста1843- **lly** – число, y-координата левого нижнего угла холста1844- **urx** – число, x-координата правого верхнего угла холста1845- **ury** – число, y-координата правого верхнего угла холста18461847Устанавливает пользовательскую систему координат и при необходимости переключается в режим «world». Это выполняет `screen.reset()`. Если режим «world» уже активен, все рисунки перерисовываются в соответствии с новыми координатами.18481849**ВНИМАНИЕ**: в пользовательских системах координат углы могут отображаться искажёнными.18501851```pycon1852>>> screen.reset()1853>>> screen.setworldcoordinates(-50,-7.5,50,7.5)1854>>> for _ in range(72):1855...     left(10)1856...1857>>> for _ in range(8):1858...     left(45); fd(2)   # правильный восьмиугольник1859```18601861### Управление анимацией18621863#### `turtle.no_animation()`18641865Временно отключает анимацию черепахи. Код, написанный внутри блока `no_animation`, не будет анимирован; после выхода из блока кода рисунок появится.18661867```pycon1868>>> with screen.no_animation():1869...     for dist in range(2, 400, 2):1870...         fd(dist)1871...         rt(90)1872```18731874Добавлено в версии 3.14.18751876#### `turtle.delay(delay=None)`18771878**Параметры:**18791880**delay** – положительное целое18811882Устанавливает или возвращает задержку *delay* рисования в миллисекундах. (Это приблизительно интервал времени между двумя последовательными обновлениями холста.) Чем больше задержка рисования, тем медленнее анимация.18831884Необязательный аргумент:18851886```pycon1887>>> screen.delay()1888101889>>> screen.delay(5)1890>>> screen.delay()189151892```18931894#### `turtle.tracer(n=None, delay=None)`18951896**Параметры:**18971898- **n** – неотрицательное целое число1899- **delay** – неотрицательное целое число19001901Включает или выключает анимацию черепашки и устанавливает задержку для обновления рисунков. Если задан *n*, то реально выполняется только каждое n-е обычное обновление экрана. (Может использоваться для ускорения рисования сложной графики.) При вызове без аргументов возвращает текущее сохранённое значение n. Второй аргумент задаёт значение задержки (см. [`delay()`](https://python-all.ru/3.15/library/turtle.html#turtle.delay)).19021903```pycon1904>>> screen.tracer(8, 25)1905>>> dist = 21906>>> for i in range(200):1907...     fd(dist)1908...     rt(90)1909...     dist += 21910```19111912#### `turtle.update()`19131914Выполняет обновление TurtleScreen. Используется, когда tracer выключен.19151916См. также метод [`speed()`](https://python-all.ru/3.15/library/turtle.html#turtle.speed) RawTurtle/Turtle.19171918### Использование событий экрана19191920#### `turtle.listen(xdummy=None, ydummy=None)`19211922Устанавливает фокус на TurtleScreen (для сбора событий клавиш). Фиктивные аргументы предусмотрены, чтобы можно было передать `listen()` методу onclick.19231924#### `turtle.onkey(fun, key)`19251926#### `turtle.onkeyrelease(fun, key)`19271928**Параметры:**19291930- **fun** – функция без аргументов или `None`1931- **key** – строка: клавиша (например, “a”) или символ клавиши (например, “space”)19321933Привязывает *fun* к событию отпускания клавиши key. Если *fun* равен `None`, привязки событий удаляются. Замечание: для регистрации событий клавиш TurtleScreen должен иметь фокус. (См. метод [`listen()`](https://python-all.ru/3.15/library/turtle.html#turtle.listen).)19341935```pycon1936>>> def f():1937...     fd(50)1938...     lt(60)1939...1940>>> screen.onkey(f, "Up")1941>>> screen.listen()1942```19431944#### `turtle.onkeypress(fun, key=None)`19451946**Параметры:**19471948- **fun** – функция без аргументов или `None`1949- **key** – строка: клавиша (например, “a”) или символ клавиши (например, “space”)19501951Привязывает *fun* к событию нажатия клавиши key, если key задан, или к любому событию нажатия клавиши, если key не задан. Замечание: для регистрации событий клавиш TurtleScreen должен иметь фокус. (См. метод [`listen()`](https://python-all.ru/3.15/library/turtle.html#turtle.listen).)19521953```pycon1954>>> def f():1955...     fd(50)1956...1957>>> screen.onkey(f, "Up")1958>>> screen.listen()1959```19601961#### `turtle.onclick(fun, btn=1, add=None)`19621963#### `turtle.onscreenclick(fun, btn=1, add=None)`19641965**Параметры:**19661967- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1968- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1969- **add**`True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку19701971Привязывает *fun* к событиям щелчка мыши на этом экране. Если *fun* равен `None`, существующие привязки удаляются.19721973Пример для экземпляра TurtleScreen с именем `screen` и экземпляра Turtle с именем `turtle`:19741975```pycon1976>>> screen.onclick(turtle.goto) # Последующий щелчок по TurtleScreen заставит1977>>>                             # черепашку переместиться в точку щелчка.1978>>> screen.onclick(None)        # снова удалить привязку события1979```19801981> **Примечание**1982>1983> Этот метод TurtleScreen доступен как глобальная функция только под именем `onscreenclick`. Глобальная функция `onclick` – это другая, производная от метода Turtle `onclick`.19841985#### `turtle.ontimer(fun, t=0)`19861987**Параметры:**19881989- **fun** – функция без аргументов1990- **t** – число \>= 019911992Устанавливает таймер, который вызывает *fun* через *t* миллисекунд.19931994```pycon1995>>> running = True1996>>> def f():1997...     if running:1998...         fd(50)1999...         lt(60)2000...         screen.ontimer(f, 250)2001>>> f()   ### заставляет черепашку обходить вокруг2002>>> running = False2003```20042005#### `turtle.mainloop()`20062007#### `turtle.done()`20082009Запускает цикл событий – вызывает функцию mainloop из Tkinter. Должна быть последней инструкцией в программе с черепашьей графикой. Должна *не* использоваться, если скрипт запускается из IDLE в режиме -n (без подпроцесса) – для интерактивного использования черепашьей графики.20102011```python2012>>> screen.mainloop()2013```20142015### Методы ввода20162017#### `turtle.textinput(title, prompt)`20182019**Параметры:**20202021- **title** – строка2022- **prompt** – строка20232024Отображает диалоговое окно для ввода строки. Параметр title – заголовок диалогового окна, prompt – текст, в основном описывающий, какую информацию нужно ввести. Возвращает введённую строку. Если диалог отменён, возвращает `None`.20252026```python2027>>> screen.textinput("NIM", "Name of first player:")2028```20292030#### `turtle.numinput(title, prompt, default=None, minval=None, maxval=None)`20312032**Параметры:**20332034- **title** – строка2035- **prompt** – строка2036- **default** – число (необязательно)2037- **minval** – число (необязательно)2038- **maxval** – число (необязательно)20392040Отображает диалоговое окно для ввода числа. title – заголовок диалогового окна, prompt – текст, в основном описывающий, какую числовую информацию нужно ввести. default – значение по умолчанию, minval – минимальное значение для ввода, maxval – максимальное значение для ввода. Введённое число должно находиться в диапазоне от minval до maxval, если эти значения заданы. Если нет, выводится подсказка, и диалог остаётся открытым для исправления. Возвращает введённое число. Если диалог отменён, возвращает `None`.20412042```python2043>>> screen.numinput("Poker", "Your stakes:", 1000, minval=10, maxval=10000)2044```20452046### Настройки и специальные методы20472048#### `turtle.mode(mode=None)`20492050**Параметры:**20512052**mode** – одна из строк “standard”, “logo” или “world”20532054Устанавливает режим черепахи (“standard”, “logo” или “world”) и выполняет сброс. Если режим не задан, возвращается текущий режим.20552056Режим “standard” совместим со старой `turtle`. Режим “logo” совместим с большинством черепашьих графических средств Logo. Режим “world” использует заданные пользователем «мировые координаты». **Внимание**: в этом режиме углы выглядят искажёнными, если `x/y` коэффициент единицы измерения не равен 1.20572058| Режим | Начальное направление черепахи | положительные углы |2059| --- | --- | --- |2060| “standard” | вправо (восток) | против часовой стрелки |2061| “logo” | вверх (север) | по часовой стрелке |20622063```pycon2064>>> mode("logo")   # сбрасывает направление черепашки на север2065>>> mode()2066'logo'2067```20682069#### `turtle.colormode(cmode=None)`20702071**Параметры:**20722073**cmode** – одно из значений 1.0 или 25520742075Возвращает цветовой режим или устанавливает его в 1.0 или 255. Впоследствии значения *r*, *g*, *b* цветовых троек должны находиться в диапазоне от 0 до \*cmode\*.20762077```pycon2078>>> screen.colormode(1)2079>>> turtle.pencolor(240, 160, 80)2080Traceback (most recent call last):2081     ...2082TurtleGraphicsError: bad color sequence: (240, 160, 80)2083>>> screen.colormode()20841.02085>>> screen.colormode(255)2086>>> screen.colormode()20872552088>>> turtle.pencolor(240,160,80)2089```20902091#### `turtle.getcanvas()`20922093Возвращает Canvas данного TurtleScreen. Полезно для тех, кто знает, что делать с Canvas из Tkinter.20942095```pycon2096>>> cv = screen.getcanvas()2097>>> cv2098<turtle.ScrolledCanvas object ...>2099```21002101#### `turtle.getshapes()`21022103Возвращает список названий всех доступных в данный момент форм черепашки.21042105```pycon2106>>> screen.getshapes()2107['arrow', 'blank', 'circle', ..., 'turtle']2108```21092110#### `turtle.register_shape(name, shape=None)`21112112#### `turtle.addshape(name, shape=None)`21132114Существует четыре способа вызова этой функции:211521161. *name* – имя файла изображения (PNG, GIF, PGM и PPM), а *shape* равно `None`: устанавливается соответствующая форма изображения.21172118   ```python2119   >>> screen.register_shape("turtle.gif")2120   ```21212122   > **Примечание**2123   >2124   > Формы изображений *не* поворачиваются при повороте черепашки, поэтому они не отображают направление черепашки!21252. *name* – произвольная строка, а *shape* – имя файла изображения (PNG, GIF, PGM и PPM): устанавливает соответствующую форму изображения.21262127   ```python2128   >>> screen.register_shape("turtle", "turtle.gif")2129   ```21302131   > **Примечание**2132   >2133   > Формы изображений *не* поворачиваются при повороте черепашки, поэтому они не отображают направление черепашки!21343. *name* – произвольная строка, а *shape* – кортеж пар координат: устанавливает соответствующую многоугольную форму.21352136   ```pycon2137   >>> screen.register_shape("triangle", ((5,-3), (0,5), (-5,-3)))2138   ```21394. *name* – произвольная строка, а *shape* – (составной) объект [`Shape`](https://python-all.ru/3.15/library/turtle.html#turtle.Shape): устанавливает соответствующую составную форму.21402141Добавляет форму черепашки в список форм TurtleScreen. Только зарегистрированные таким образом формы можно использовать, выполнив команду `shape(shapename)`.21422143Изменено в версии 3.14: Добавлена поддержка форматов изображений PNG, PGM и PPM. Можно указать как название формы, так и имя файла изображения.21442145#### `turtle.turtles()`21462147Возвращает список черепашек на экране.21482149```pycon2150>>> for turtle in screen.turtles():2151...     turtle.color("red")2152```21532154#### `turtle.window_height()`21552156Возвращает высоту окна черепашки.21572158```python2159>>> screen.window_height()21604802161```21622163#### `turtle.window_width()`21642165Возвращает ширину окна черепашки.21662167```python2168>>> screen.window_width()21696402170```21712172### Методы, специфичные для Screen, не наследуемые от TurtleScreen21732174#### `turtle.bye()`21752176Закрывает окно графики черепашки.21772178#### `turtle.exitonclick()`21792180Привязывает метод `bye()` к щелчкам мыши на экране.21812182Если значение «using\_IDLE» в словаре конфигурации равно `False` (значение по умолчанию), также запускается главный цикл. Примечание: если используется IDLE с ключом `-n` (без подпроцесса), это значение следует установить в `True` в `turtle.cfg`. В этом случае собственный главный цикл IDLE активен также для клиентского скрипта.21832184#### `turtle.save(filename, overwrite=False)`21852186Сохраняет текущий рисунок черепашки (и черепашек) в файл PostScript.21872188**Параметры:**21892190- **filename** – путь к сохраняемому файлу PostScript2191- **overwrite** – если `False` и файл с указанным именем уже существует, то функция вызовет исключение `FileExistsError`. Если же `True`, файл будет перезаписан.21922193```pycon2194>>> screen.save("my_drawing.ps")2195>>> screen.save("my_drawing.ps", overwrite=True)2196```21972198Добавлено в версии 3.14.21992200#### `turtle.setup(width=_CFG['width'], height=_CFG['height'], startx=_CFG['leftright'], starty=_CFG['topbottom'])`22012202Устанавливает размер и положение главного окна. Значения аргументов по умолчанию хранятся в словаре конфигурации и могут быть изменены через файл `turtle.cfg`.22032204**Параметры:**22052206- **width** – если целое число, размер в пикселях; если число с плавающей запятой, доля экрана; по умолчанию – 50% экрана.2207- **height** – если целое число, высота в пикселях; если число с плавающей запятой, доля от экрана; по умолчанию 75% экрана2208- **startx** – если положительное, начальная позиция в пикселях от левого края экрана; если отрицательное – от правого края; если `None`, окно центрируется по горизонтали2209- **starty** – если положительное, начальная позиция в пикселях от верхнего края экрана; если отрицательное – от нижнего края; если `None`, окно центрируется по вертикали22102211```pycon2212>>> screen.setup (width=200, height=200, startx=0, starty=0)2213>>>              # устанавливает окно размером 200x200 пикселей в верхнем левом углу экрана2214>>> screen.setup(width=.75, height=0.5, startx=None, starty=None)2215>>>              # устанавливает окно 75% на 50% экрана и центрирует его2216```22172218#### `turtle.title(titlestring)`22192220**Параметры:**22212222**titlestring** – строка, отображаемая в заголовке окна черепашьей графики22232224Устанавливает заголовок окна черепашки равным *titlestring*.22252226```pycon2227>>> screen.title("Welcome to the turtle zoo!")2228```22292230## Открытые классы22312232#### `class turtle.RawTurtle(canvas)`22332234#### `class turtle.RawPen(canvas)`22352236**Параметры:**22372238**canvas**`tkinter.Canvas`, [`ScrolledCanvas`](https://python-all.ru/3.15/library/turtle.html#turtle.ScrolledCanvas) или [`TurtleScreen`](https://python-all.ru/3.15/library/turtle.html#turtle.TurtleScreen)22392240Создаёт черепашку. Объект черепашки обладает всеми методами, описанными выше как «методы Turtle/RawTurtle».22412242#### `class turtle.Turtle`22432244Подкласс RawTurtle, имеет тот же интерфейс, но рисует на объекте [`Screen`](https://python-all.ru/3.15/library/turtle.html#turtle.Screen) по умолчанию, который создаётся автоматически при первом обращении.22452246#### `class turtle.TurtleScreen(cv)`22472248**Параметры:**22492250**cv**`tkinter.Canvas`22512252Предоставляет экранно-ориентированные методы, такие как [`bgcolor()`](https://python-all.ru/3.15/library/turtle.html#turtle.bgcolor) и другие, описанные выше.22532254#### `class turtle.Screen`22552256Подкласс TurtleScreen, [дополненный четырьмя методами](https://python-all.ru/3.15/library/turtle.html#screenspecific).22572258#### `class turtle.ScrolledCanvas(master)`22592260**Параметры:**22612262**master** – виджет Tkinter, в который помещается ScrolledCanvas; например, Tkinter-холст с добавленными полосами прокрутки22632264Используется классом Screen, который, таким образом, автоматически предоставляет ScrolledCanvas в качестве поля для черепашек.22652266#### `class turtle.Shape(type_, data)`22672268**Параметры:**22692270**type\_** – одна из строк: «polygon», «image», «compound»22712272Структура данных для описания фигур. Пара `(type_, data)` должна соответствовать следующей спецификации:22732274| *type\_* | *данные* |2275| --- | --- |2276| «polygon» | кортеж многоугольника, т.е. кортеж пар координат |2277| «image» | изображение (в таком виде используется только внутри!) |2278| «compound» | `None` (составная фигура должна строиться с помощью метода [`addcomponent()`](https://python-all.ru/3.15/library/turtle.html#turtle.Shape.addcomponent)) |22792280#### `addcomponent(poly, fill, outline, None)`22812282**Параметры:**22832284- **poly** – многоугольник, т.е. кортеж пар чисел2285- **fill** – цвет, которым будет заполнен *poly*2286- **outline** – цвет контура многоугольника (если задан)22872288Пример:22892290```pycon2291>>> poly = ((0,0),(10,-5),(0,10),(-10,-5))2292>>> s = Shape("compound")2293>>> s.addcomponent(poly, "red", "blue")2294>>> # ... добавьте больше компонентов, а затем используйте register_shape()2295```22962297См. [Составные фигуры](https://python-all.ru/3.15/library/turtle.html#compoundshapes).22982299#### `class turtle.Vec2D(x, y)`23002301Двумерный векторный класс, используемый как вспомогательный класс для реализации graphics черепашки. Может быть полезен и для программ с графикой черепашки. Производный от tuple, так что вектор – это кортеж!23022303Предоставляет (для векторов *a*, *b* и числа *k*):23042305- `a + b` сложение векторов2306- `a - b` вычитание векторов2307- `a * b` скалярное произведение2308- `k * a` и `a * k` умножение на скаляр2309- `abs(a)` абсолютное значение a2310- `a.rotate(angle)` поворот23112312## Пояснение23132314Объект черепашки рисует на объекте экрана, и в объектно-ориентированном интерфейсе черепашки есть ряд ключевых классов, которые можно использовать для их создания и связи друг с другом.23152316Экземпляр [`Turtle`](https://python-all.ru/3.15/library/turtle.html#turtle.Turtle) автоматически создаст экземпляр [`Screen`](https://python-all.ru/3.15/library/turtle.html#turtle.Screen), если его ещё нет.23172318`Turtle` – подкласс [`RawTurtle`](https://python-all.ru/3.15/library/turtle.html#turtle.RawTurtle), который *не* создаёт автоматически поверхность для рисования – для него необходимо предоставить или создать *холст*. *Холст* может быть `tkinter.Canvas`, [`ScrolledCanvas`](https://python-all.ru/3.15/library/turtle.html#turtle.ScrolledCanvas) или [`TurtleScreen`](https://python-all.ru/3.15/library/turtle.html#turtle.TurtleScreen).23192320[`TurtleScreen`](https://python-all.ru/3.15/library/turtle.html#turtle.TurtleScreen) – основная поверхность для рисования черепашки. [`Screen`](https://python-all.ru/3.15/library/turtle.html#turtle.Screen) – подкласс `TurtleScreen` и включает [несколько дополнительных методов](https://python-all.ru/3.15/library/turtle.html#screenspecific) для управления своим внешним видом (включая размер и заголовок) и поведением. Конструктор `TurtleScreen` требует аргумент `tkinter.Canvas` или [`ScrolledCanvas`](https://python-all.ru/3.15/library/turtle.html#turtle.ScrolledCanvas).23212322Функциональный интерфейс для графики черепашки использует различные методы `Turtle` и `TurtleScreen`/`Screen`. За кулисами объект экрана автоматически создаётся при каждом вызове функции, производной от метода `Screen`. Аналогично, объект черепашки автоматически создаётся при каждом вызове любой из функций, производных от метода Turtle.23232324Для использования нескольких черепашек на одном экране необходимо использовать объектно-ориентированный интерфейс.23252326## Справка и настройка23272328### Как пользоваться справкой23292330Публичные методы классов Screen и Turtle подробно документированы через docstrings. Их можно использовать как онлайн-справку через средства помощи Python:23312332- При использовании IDLE всплывающие подсказки показывают сигнатуры и первые строки docstrings для введённых вызовов функций/методов.2333- Вызов [`help()`](https://python-all.ru/3.15/library/functions.html#help) для методов или функций отображает docstrings:23342335  ```python2336  >>> help(Screen.bgcolor)2337  Help on method bgcolor in module turtle:23382339  bgcolor(self, *args) unbound turtle.Screen method2340      Set or return backgroundcolor of the TurtleScreen.23412342      Arguments (if given): a color string or three numbers2343      in the range 0..colormode or a 3-tuple of such numbers.23442345      >>> screen.bgcolor("orange")2346      >>> screen.bgcolor()2347      "orange"2348      >>> screen.bgcolor(0.5,0,0.5)2349      >>> screen.bgcolor()2350      "#800080"23512352  >>> help(Turtle.penup)2353  Help on method penup in module turtle:23542355  penup(self) unbound turtle.Turtle method2356      Pull the pen up -- no drawing when moving.23572358      Aliases: penup | pu | up23592360      No argument23612362      >>> turtle.penup()2363  ```2364- Docstrings функций, производных от методов, имеют изменённую форму:23652366  ```python2367  >>> help(bgcolor)2368  Help on function bgcolor in module turtle:23692370  bgcolor(*args)2371      Set or return backgroundcolor of the TurtleScreen.23722373      Arguments (if given): a color string or three numbers2374      in the range 0..colormode or a 3-tuple of such numbers.23752376      Example::23772378        >>> bgcolor("orange")2379        >>> bgcolor()2380        "orange"2381        >>> bgcolor(0.5,0,0.5)2382        >>> bgcolor()2383        "#800080"23842385  >>> help(penup)2386  Help on function penup in module turtle:23872388  penup()2389      Pull the pen up -- no drawing when moving.23902391      Aliases: penup | pu | up23922393      No argument23942395      Example:2396      >>> penup()2397  ```23982399Эти изменённые docstrings создаются автоматически вместе с определениями функций, которые производятся от методов во время импорта.24002401### Перевод docstrings на разные языки24022403Существует утилита для создания словаря, ключами которого являются имена методов, а значениями – docstrings публичных методов классов Screen и Turtle.24042405#### `turtle.write_docstringdict(filename='turtle_docstringdict')`24062407**Параметры:**24082409**filename** – строка, используемая как имя файла24102411Создаёт и записывает словарь docstring в Python-скрипт с заданным именем файла. Эту функцию необходимо вызывать явно (она не используется классами графики черепашки). Словарь docstring будет записан в Python-скрипт `filename.py`. Он предназначен для использования в качестве шаблона для перевода docstrings на разные языки.24122413Если вы (или ваши студенты) хотите использовать `turtle` с онлайн-справкой на вашем родном языке, необходимо перевести docstrings и сохранить полученный файл, например, как `turtle_docstringdict_german.py`.24142415Если в вашем файле `turtle.cfg` есть соответствующая запись, этот словарь будет считан на этапе импорта и заменит оригинальные англоязычные строки документации.24162417На момент написания этого текста есть словари строк документации на немецком и итальянском. (Запросы направляйте на [glingl@aon.at](https://python-all.ru/3.15/library/turtle.html).)24182419### Как настроить Screen и Turtles24202421Встроенная конфигурация по умолчанию имитирует внешний вид и поведение старого модуля turtle, чтобы сохранить максимально возможную совместимость с ним.24222423Если вы хотите использовать другую конфигурацию, которая лучше отражает возможности этого модуля или лучше соответствует вашим потребностям, например, для использования в классе, вы можете подготовить файл конфигурации `turtle.cfg`, который будет прочитан на этапе импорта и изменит конфигурацию в соответствии с его настройками.24242425Встроенная конфигурация соответствует следующему `turtle.cfg`:24262427```ini2428width = 0.52429height = 0.752430leftright = None2431topbottom = None2432canvwidth = 4002433canvheight = 3002434mode = standard2435colormode = 1.02436delay = 102437undobuffersize = 10002438shape = classic2439pencolor = black2440fillcolor = black2441resizemode = noresize2442visible = True2443language = english2444exampleturtle = turtle2445examplescreen = screen2446title = Python Turtle Graphics2447using_IDLE = False2448```24492450Краткое пояснение выбранных записей:24512452- Первые четыре строки соответствуют аргументам метода [`Screen.setup`](https://python-all.ru/3.15/library/turtle.html#turtle.setup).2453- Строки 5 и 6 соответствуют аргументам метода [`Screen.screensize`](https://python-all.ru/3.15/library/turtle.html#turtle.screensize).2454- *shape* может быть любой из встроенных форм, например: arrow, turtle и т.д. Для получения дополнительной информации попробуйте `help(shape)`.2455- Если вы хотите не использовать цвет заливки (т.е. сделать черепашку прозрачной), вы должны написать `fillcolor = ""` (но все непустые строки не должны содержать кавычки в cfg-файле).2456- Если вы хотите отразить состояние черепашки, вы должны использовать `resizemode = auto`.2457- Если вы установите, например, `language = italian`, то словарь строк документации `turtle_docstringdict_italian.py` будет загружен во время импорта (если он присутствует в пути импорта, например, в той же директории, что и `turtle`).2458- Записи *exampleturtle* и *examplescreen* задают имена этих объектов, как они встречаются в строках документации. Преобразование строк документации методов в строки документации функций удалит эти имена из строк документации.2459- *using\_IDLE*: Установите это в `True`, если вы регулярно работаете с IDLE и его переключателем `-n` («нет подпроцесса»). Это предотвратит [`exitonclick()`](https://python-all.ru/3.15/library/turtle.html#turtle.exitonclick) от входа в главный цикл.24602461Может быть файл `turtle.cfg` в каталоге, где хранится `turtle`, и дополнительный файл в текущем рабочем каталоге. Последний переопределит настройки первого.24622463Каталог `Lib/turtledemo` содержит файл `turtle.cfg`. Вы можете изучить его как пример и увидеть его эффекты при запуске демонстраций (желательно не из средства просмотра демонстраций).24642465## `turtledemo` – Демонстрационные скрипты24662467Пакет `turtledemo` включает набор демонстрационных скриптов. Эти скрипты можно запускать и просматривать с помощью поставляемого средства просмотра демонстраций следующим образом:24682469```python2470python -m turtledemo2471```24722473В качестве альтернативы вы можете запускать демонстрационные скрипты по отдельности. Например,24742475```python2476python -m turtledemo.bytedesign2477```24782479Каталог пакета `turtledemo` содержит:24802481- Средство просмотра демонстраций `__main__.py`, которое можно использовать для просмотра исходного кода скриптов и одновременного их запуска.2482- Несколько скриптов, демонстрирующих различные возможности модуля `turtle`. Примеры доступны через меню Examples. Их также можно запускать отдельно.2483- Файл `turtle.cfg`, который служит примером того, как писать и использовать такие файлы.24842485Демонстрационные скрипты:24862487| Имя | Описание | Возможности |2488| --- | --- | --- |2489| `bytedesign` | сложный классический узор черепашьей графики | [`tracer()`](https://python-all.ru/3.15/library/turtle.html#turtle.tracer), [`delay()`](https://python-all.ru/3.15/library/turtle.html#turtle.delay), [`update()`](https://python-all.ru/3.15/library/turtle.html#turtle.update) |2490| `chaos` | строит график динамики Ферхюльста, показывает, что компьютерные вычисления иногда могут давать результаты, противоречащие здравому смыслу | мировые координаты |2491| `clock` | аналоговые часы, показывающие время вашего компьютера | черепашки в качестве стрелок часов, [`ontimer()`](https://python-all.ru/3.15/library/turtle.html#turtle.ontimer) |2492| `colormixer` | эксперимент с r, g, b | [`ondrag()`](https://python-all.ru/3.15/library/turtle.html#turtle.ondrag) |2493| `forest` | 3 дерева обхода в ширину | рандомизация |2494| `fractalcurves` | Кривые Гильберта и Коха | рекурсия |2495| `lindenmayer` | этноматематика (индийские коламы) | L-система |2496| `minimal_hanoi` | Ханойские башни | Прямоугольные черепашки в качестве дисков Ханоя ([`shape()`](https://python-all.ru/3.15/library/turtle.html#turtle.shape), [`shapesize()`](https://python-all.ru/3.15/library/turtle.html#turtle.shapesize)) |2497| `nim` | игра в классический ним с тремя кучками палочек против компьютера. | черепашки как палочки нима, событийно-ориентированное управление (мышь, клавиатура) |2498| `paint` | супер-минималистичная программа для рисования | [`onclick()`](https://python-all.ru/3.15/library/turtle.html#turtle.onclick) |2499| `peace` | элементарный | черепашка: внешний вид и анимация |2500| `penrose` | непериодическое замощение воздушными змеями и дротиками | [`stamp()`](https://python-all.ru/3.15/library/turtle.html#turtle.stamp) |2501| `planet_and_moon` | симуляция гравитационной системы | составные фигуры, [`Vec2D`](https://python-all.ru/3.15/library/turtle.html#turtle.Vec2D) |2502| `rosette` | узор из статьи в Википедии о черепашьей графике | [`clone()`](https://python-all.ru/3.15/library/turtle.html#turtle.clone), [`undo()`](https://python-all.ru/3.15/library/turtle.html#turtle.undo) |2503| `round_dance` | танцующие черепашки, вращающиеся попарно в противоположных направлениях | составные фигуры, [`clone()`](https://python-all.ru/3.15/library/turtle.html#turtle.clone) [`shapesize()`](https://python-all.ru/3.15/library/turtle.html#turtle.shapesize), [`tilt()`](https://python-all.ru/3.15/library/turtle.html#turtle.tilt), [`get_shapepoly()`](https://python-all.ru/3.15/library/turtle.html#turtle.get_shapepoly), [`update()`](https://python-all.ru/3.15/library/turtle.html#turtle.update) |2504| `sorting_animate` | визуальная демонстрация различных методов сортировки | простое выравнивание, рандомизация |2505| `tree` | (графическое) дерево обхода в ширину (с использованием генераторов) | [`clone()`](https://python-all.ru/3.15/library/turtle.html#turtle.clone) |2506| `two_canvases` | простой дизайн | черепашки на двух холстах |2507| `yinyang` | ещё один элементарный пример | [`circle()`](https://python-all.ru/3.15/library/turtle.html#turtle.circle) |25082509Удачи!25102511## Изменения, начиная с Python 2.625122513- Методы [`Turtle.tracer`](https://python-all.ru/3.15/library/turtle.html#turtle.tracer), [`Turtle.window_width`](https://python-all.ru/3.15/library/turtle.html#turtle.window_width) и [`Turtle.window_height`](https://python-all.ru/3.15/library/turtle.html#turtle.window_height) были удалены. Методы с такими именами и функциональностью теперь доступны только как методы [`Screen`](https://python-all.ru/3.15/library/turtle.html#turtle.Screen). Производные от них функции остаются доступными. (На самом деле уже в Python 2.6 эти методы были просто дубликатами соответствующих методов [`TurtleScreen`](https://python-all.ru/3.15/library/turtle.html#turtle.TurtleScreen)/`Screen`.)2514- Метод `Turtle.fill()` был удалён. Поведение [`begin_fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.begin_fill) и [`end_fill()`](https://python-all.ru/3.15/library/turtle.html#turtle.end_fill) незначительно изменилось: теперь каждый процесс заливки должен завершаться вызовом `end_fill()`.2515- Добавлен метод [`Turtle.filling`](https://python-all.ru/3.15/library/turtle.html#turtle.filling). Он возвращает булево значение: `True`, если процесс заливки выполняется, `False` в противном случае. Это поведение соответствует вызову `fill()` без аргументов в Python 2.6.25162517## Изменения, начиная с Python 3.025182519- Были добавлены методы [`Turtle`](https://python-all.ru/3.15/library/turtle.html#turtle.Turtle): [`shearfactor()`](https://python-all.ru/3.15/library/turtle.html#turtle.shearfactor), [`shapetransform()`](https://python-all.ru/3.15/library/turtle.html#turtle.shapetransform) и [`get_shapepoly()`](https://python-all.ru/3.15/library/turtle.html#turtle.get_shapepoly). Таким образом, теперь доступен полный набор обычных линейных преобразований для трансформации форм черепашек. Функциональность [`tiltangle()`](https://python-all.ru/3.15/library/turtle.html#turtle.tiltangle) была расширена: теперь его можно использовать для получения или установки угла наклона.2520- Метод [`Screen`](https://python-all.ru/3.15/library/turtle.html#turtle.Screen) [`onkeypress()`](https://python-all.ru/3.15/library/turtle.html#turtle.onkeypress) добавлен как дополнение к [`onkey()`](https://python-all.ru/3.15/library/turtle.html#turtle.onkey). Поскольку последний привязывает действия к событию отпускания клавиши, для него также был добавлен псевдоним [`onkeyrelease()`](https://python-all.ru/3.15/library/turtle.html#turtle.onkeyrelease).2521- Метод [`Screen.mainloop`](https://python-all.ru/3.15/library/turtle.html#turtle.mainloop) добавлен, поэтому больше нет необходимости использовать отдельную функцию `mainloop()` при работе с объектами [`Screen`](https://python-all.ru/3.15/library/turtle.html#turtle.Screen) и [`Turtle`](https://python-all.ru/3.15/library/turtle.html#turtle.Turtle).2522- Добавлены два метода ввода: [`Screen.textinput`](https://python-all.ru/3.15/library/turtle.html#turtle.textinput) и [`Screen.numinput`](https://python-all.ru/3.15/library/turtle.html#turtle.numinput). Они открывают диалоговые окна ввода и возвращают строки и числа соответственно.2523