turtle.md
1> **Источник:** https://python-all.ru/3.8/library/turtle.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# [`turtle`](https://python-all.ru/3.8/library/turtle.html#module-turtle) – Черепашья графика89**Исходный код:** [Lib/turtle.py](https://python-all.ru/src/3.8/Lib/turtle.py)1011---1213## Введение1415Черепашья графика – популярный способ познакомить детей с программированием. Она была частью оригинального языка программирования Logo, разработанного Уолли Фёрзейгом, Сеймуром Пейпертом и Синтией Соломон в 1967 году.1617Представьте роботизированную черепашку, начинающую с точки (0, 0) на плоскости x-y. После `import turtle` дайте ей команду `turtle.forward(15)`, и она переместится (на экране!) на 15 пикселей в том направлении, куда смотрит, рисуя линию во время движения. Дайте ей команду `turtle.right(25)`, и она повернётся на месте на 25 градусов по часовой стрелке.1819Черепашья звезда2021Черепашка может рисовать сложные фигуры с помощью программ, повторяющих простые движения.22232425```python26from turtle import *27color('red', 'yellow')28begin_fill()29while True:30 forward(200)31 left(170)32 if abs(pos()) < 1:33 break34end_fill()35done()36```3738Комбинируя эти и подобные команды, можно легко рисовать сложные фигуры и картинки.3940Модуль [`turtle`](https://python-all.ru/3.8/library/turtle.html#module-turtle) – это расширенная повторная реализация одноимённого модуля из стандартной поставки Python до версии Python 2.5.4142Он старается сохранить достоинства старого модуля turtle и быть (почти) на 100% совместимым с ним. Это означает, в первую очередь, что начинающий программист может использовать все команды, классы и методы в интерактивном режиме при работе с модулем из IDLE, запущенной с ключом `-n`.4344Модуль turtle предоставляет примитивы черепашьей графики как в объектно-ориентированном, так и в процедурно-ориентированном стиле. Поскольку для работы с графикой он использует [`tkinter`](https://python-all.ru/3.8/library/tkinter.html#module-tkinter), требуется версия Python, установленная с поддержкой Tk.4546Объектно-ориентированный интерфейс использует, по сути, два + два класса:47481. Класс [`TurtleScreen`](https://python-all.ru/3.8/library/turtle.html#turtle.TurtleScreen) определяет графические окна как игровое поле для рисующих черепах. Его конструктор принимает в качестве аргумента `tkinter.Canvas` или [`ScrolledCanvas`](https://python-all.ru/3.8/library/turtle.html#turtle.ScrolledCanvas). Его следует использовать, когда [`turtle`](https://python-all.ru/3.8/library/turtle.html#module-turtle) применяется как часть какого-либо приложения.4950 Функция [`Screen()`](https://python-all.ru/3.8/library/turtle.html#turtle.Screen) возвращает объект-одиночку подкласса [`TurtleScreen`](https://python-all.ru/3.8/library/turtle.html#turtle.TurtleScreen). Эту функцию следует использовать, когда [`turtle`](https://python-all.ru/3.8/library/turtle.html#module-turtle) применяется как автономное средство для рисования. Поскольку это объект-одиночка, наследование от его класса невозможно.5152 Все методы TurtleScreen/Screen также существуют в виде функций, то есть являются частью процедурно-ориентированного интерфейса.532. [`RawTurtle`](https://python-all.ru/3.8/library/turtle.html#turtle.RawTurtle) (псевдоним: [`RawPen`](https://python-all.ru/3.8/library/turtle.html#turtle.RawPen)) определяет объекты Turtle, которые рисуют на [`TurtleScreen`](https://python-all.ru/3.8/library/turtle.html#turtle.TurtleScreen). Его конструктор принимает в качестве аргумента Canvas, ScrolledCanvas или TurtleScreen, чтобы объекты RawTurtle знали, где рисовать.5455 От RawTurtle наследуется подкласс [`Turtle`](https://python-all.ru/3.8/library/turtle.html#turtle.Turtle) (псевдоним: `Pen`), который рисует на экземпляре «того самого» [`Screen`](https://python-all.ru/3.8/library/turtle.html#turtle.Screen), который создаётся автоматически, если ещё не существует.5657 Все методы RawTurtle/Turtle также существуют в виде функций, то есть как часть процедурно-ориентированного интерфейса.5859Процедурный интерфейс предоставляет функции, производные от методов классов [`Screen`](https://python-all.ru/3.8/library/turtle.html#turtle.Screen) и [`Turtle`](https://python-all.ru/3.8/library/turtle.html#turtle.Turtle). Они имеют те же имена, что и соответствующие методы. Объект экрана создаётся автоматически при вызове любой функции, производной от метода Screen. (Безымянный) объект черепахи создаётся автоматически при вызове любой функции, производной от метода Turtle.6061Чтобы использовать несколько черепах на одном экране, необходимо применять объектно-ориентированный интерфейс.6263> **Примечание**64>65> В следующей документации приведён список аргументов для функций. Методы, конечно, имеют дополнительный первый аргумент *self*, который здесь опущен.6667## Обзор доступных методов Turtle и Screen6869### Методы черепахи7071**Движение черепахи**7273**Перемещение и рисование**7475[`forward()`](https://python-all.ru/3.8/library/turtle.html#turtle.forward)7677|7879[`fd()`](https://python-all.ru/3.8/library/turtle.html#turtle.fd)8081[`backward()`](https://python-all.ru/3.8/library/turtle.html#turtle.backward)8283|8485[`bk()`](https://python-all.ru/3.8/library/turtle.html#turtle.bk)8687|8889[`back()`](https://python-all.ru/3.8/library/turtle.html#turtle.back)9091[`right()`](https://python-all.ru/3.8/library/turtle.html#turtle.right)9293|9495[`rt()`](https://python-all.ru/3.8/library/turtle.html#turtle.rt)9697[`left()`](https://python-all.ru/3.8/library/turtle.html#turtle.left)9899|100101[`lt()`](https://python-all.ru/3.8/library/turtle.html#turtle.lt)102103[`goto()`](https://python-all.ru/3.8/library/turtle.html#turtle.goto)104105|106107[`setpos()`](https://python-all.ru/3.8/library/turtle.html#turtle.setpos)108109|110111[`setposition()`](https://python-all.ru/3.8/library/turtle.html#turtle.setposition)112113[`setx()`](https://python-all.ru/3.8/library/turtle.html#turtle.setx)114115[`sety()`](https://python-all.ru/3.8/library/turtle.html#turtle.sety)116117[`setheading()`](https://python-all.ru/3.8/library/turtle.html#turtle.setheading)118119|120121[`seth()`](https://python-all.ru/3.8/library/turtle.html#turtle.seth)122123[`home()`](https://python-all.ru/3.8/library/turtle.html#turtle.home)124125[`circle()`](https://python-all.ru/3.8/library/turtle.html#turtle.circle)126127[`dot()`](https://python-all.ru/3.8/library/turtle.html#turtle.dot)128129[`stamp()`](https://python-all.ru/3.8/library/turtle.html#turtle.stamp)130131[`clearstamp()`](https://python-all.ru/3.8/library/turtle.html#turtle.clearstamp)132133[`clearstamps()`](https://python-all.ru/3.8/library/turtle.html#turtle.clearstamps)134135[`undo()`](https://python-all.ru/3.8/library/turtle.html#turtle.undo)136137[`speed()`](https://python-all.ru/3.8/library/turtle.html#turtle.speed)138139**Состояние черепахи**140141[`position()`](https://python-all.ru/3.8/library/turtle.html#turtle.position)142143|144145[`pos()`](https://python-all.ru/3.8/library/turtle.html#turtle.pos)146147[`towards()`](https://python-all.ru/3.8/library/turtle.html#turtle.towards)148149[`xcor()`](https://python-all.ru/3.8/library/turtle.html#turtle.xcor)150151[`ycor()`](https://python-all.ru/3.8/library/turtle.html#turtle.ycor)152153[`heading()`](https://python-all.ru/3.8/library/turtle.html#turtle.heading)154155[`distance()`](https://python-all.ru/3.8/library/turtle.html#turtle.distance)156157**Настройка и измерение**158159[`degrees()`](https://python-all.ru/3.8/library/turtle.html#turtle.degrees)160161[`radians()`](https://python-all.ru/3.8/library/turtle.html#turtle.radians)162163**Управление пером**164165**Состояние рисования**166167[`pendown()`](https://python-all.ru/3.8/library/turtle.html#turtle.pendown)168169|170171[`pd()`](https://python-all.ru/3.8/library/turtle.html#turtle.pd)172173|174175[`down()`](https://python-all.ru/3.8/library/turtle.html#turtle.down)176177[`penup()`](https://python-all.ru/3.8/library/turtle.html#turtle.penup)178179|180181[`pu()`](https://python-all.ru/3.8/library/turtle.html#turtle.pu)182183|184185[`up()`](https://python-all.ru/3.8/library/turtle.html#turtle.up)186187[`pensize()`](https://python-all.ru/3.8/library/turtle.html#turtle.pensize)188189|190191[`width()`](https://python-all.ru/3.8/library/turtle.html#turtle.width)192193[`pen()`](https://python-all.ru/3.8/library/turtle.html#turtle.pen)194195[`isdown()`](https://python-all.ru/3.8/library/turtle.html#turtle.isdown)196197**Управление цветом**198199[`color()`](https://python-all.ru/3.8/library/turtle.html#turtle.color)200201[`pencolor()`](https://python-all.ru/3.8/library/turtle.html#turtle.pencolor)202203[`fillcolor()`](https://python-all.ru/3.8/library/turtle.html#turtle.fillcolor)204205**Заливка**206207[`filling()`](https://python-all.ru/3.8/library/turtle.html#turtle.filling)208209[`begin_fill()`](https://python-all.ru/3.8/library/turtle.html#turtle.begin_fill)210211[`end_fill()`](https://python-all.ru/3.8/library/turtle.html#turtle.end_fill)212213**Дополнительное управление рисованием**214215[`reset()`](https://python-all.ru/3.8/library/turtle.html#turtle.reset)216217[`clear()`](https://python-all.ru/3.8/library/turtle.html#turtle.clear)218219[`write()`](https://python-all.ru/3.8/library/turtle.html#turtle.write)220221**Состояние черепахи**222223**Видимость**224225[`showturtle()`](https://python-all.ru/3.8/library/turtle.html#turtle.showturtle)226227|228229[`st()`](https://python-all.ru/3.8/library/turtle.html#turtle.st)230231[`hideturtle()`](https://python-all.ru/3.8/library/turtle.html#turtle.hideturtle)232233|234235[`ht()`](https://python-all.ru/3.8/library/turtle.html#turtle.ht)236237[`isvisible()`](https://python-all.ru/3.8/library/turtle.html#turtle.isvisible)238239**Внешний вид**240241[`shape()`](https://python-all.ru/3.8/library/turtle.html#turtle.shape)242243[`resizemode()`](https://python-all.ru/3.8/library/turtle.html#turtle.resizemode)244245[`shapesize()`](https://python-all.ru/3.8/library/turtle.html#turtle.shapesize)246247|248249[`turtlesize()`](https://python-all.ru/3.8/library/turtle.html#turtle.turtlesize)250251[`shearfactor()`](https://python-all.ru/3.8/library/turtle.html#turtle.shearfactor)252253[`settiltangle()`](https://python-all.ru/3.8/library/turtle.html#turtle.settiltangle)254255[`tiltangle()`](https://python-all.ru/3.8/library/turtle.html#turtle.tiltangle)256257[`tilt()`](https://python-all.ru/3.8/library/turtle.html#turtle.tilt)258259[`shapetransform()`](https://python-all.ru/3.8/library/turtle.html#turtle.shapetransform)260261[`get_shapepoly()`](https://python-all.ru/3.8/library/turtle.html#turtle.get_shapepoly)262263**Использование событий**264265[`onclick()`](https://python-all.ru/3.8/library/turtle.html#turtle.onclick)266267[`onrelease()`](https://python-all.ru/3.8/library/turtle.html#turtle.onrelease)268269[`ondrag()`](https://python-all.ru/3.8/library/turtle.html#turtle.ondrag)270271**Специальные методы черепахи**272273[`begin_poly()`](https://python-all.ru/3.8/library/turtle.html#turtle.begin_poly)274275[`end_poly()`](https://python-all.ru/3.8/library/turtle.html#turtle.end_poly)276277[`get_poly()`](https://python-all.ru/3.8/library/turtle.html#turtle.get_poly)278279[`clone()`](https://python-all.ru/3.8/library/turtle.html#turtle.clone)280281[`getturtle()`](https://python-all.ru/3.8/library/turtle.html#turtle.getturtle)282283|284285[`getpen()`](https://python-all.ru/3.8/library/turtle.html#turtle.getpen)286287[`getscreen()`](https://python-all.ru/3.8/library/turtle.html#turtle.getscreen)288289[`setundobuffer()`](https://python-all.ru/3.8/library/turtle.html#turtle.setundobuffer)290291[`undobufferentries()`](https://python-all.ru/3.8/library/turtle.html#turtle.undobufferentries)292293### Методы TurtleScreen/Screen294295**Управление окном**296297[`bgcolor()`](https://python-all.ru/3.8/library/turtle.html#turtle.bgcolor)298299[`bgpic()`](https://python-all.ru/3.8/library/turtle.html#turtle.bgpic)300301[`clear()`](https://python-all.ru/3.8/library/turtle.html#turtle.clear)302303|304305[`clearscreen()`](https://python-all.ru/3.8/library/turtle.html#turtle.clearscreen)306307[`reset()`](https://python-all.ru/3.8/library/turtle.html#turtle.reset)308309|310311[`resetscreen()`](https://python-all.ru/3.8/library/turtle.html#turtle.resetscreen)312313[`screensize()`](https://python-all.ru/3.8/library/turtle.html#turtle.screensize)314315[`setworldcoordinates()`](https://python-all.ru/3.8/library/turtle.html#turtle.setworldcoordinates)316317**Управление анимацией**318319[`delay()`](https://python-all.ru/3.8/library/turtle.html#turtle.delay)320321[`tracer()`](https://python-all.ru/3.8/library/turtle.html#turtle.tracer)322323[`update()`](https://python-all.ru/3.8/library/turtle.html#turtle.update)324325**Использование событий экрана**326327[`listen()`](https://python-all.ru/3.8/library/turtle.html#turtle.listen)328329[`onkey()`](https://python-all.ru/3.8/library/turtle.html#turtle.onkey)330331|332333[`onkeyrelease()`](https://python-all.ru/3.8/library/turtle.html#turtle.onkeyrelease)334335[`onkeypress()`](https://python-all.ru/3.8/library/turtle.html#turtle.onkeypress)336337[`onclick()`](https://python-all.ru/3.8/library/turtle.html#turtle.onclick)338339|340341[`onscreenclick()`](https://python-all.ru/3.8/library/turtle.html#turtle.onscreenclick)342343[`ontimer()`](https://python-all.ru/3.8/library/turtle.html#turtle.ontimer)344345[`mainloop()`](https://python-all.ru/3.8/library/turtle.html#turtle.mainloop)346347|348349[`done()`](https://python-all.ru/3.8/library/turtle.html#turtle.done)350351**Настройки и специальные методы**352353[`mode()`](https://python-all.ru/3.8/library/turtle.html#turtle.mode)354355[`colormode()`](https://python-all.ru/3.8/library/turtle.html#turtle.colormode)356357[`getcanvas()`](https://python-all.ru/3.8/library/turtle.html#turtle.getcanvas)358359[`getshapes()`](https://python-all.ru/3.8/library/turtle.html#turtle.getshapes)360361[`register_shape()`](https://python-all.ru/3.8/library/turtle.html#turtle.register_shape)362363|364365[`addshape()`](https://python-all.ru/3.8/library/turtle.html#turtle.addshape)366367[`turtles()`](https://python-all.ru/3.8/library/turtle.html#turtle.turtles)368369[`window_height()`](https://python-all.ru/3.8/library/turtle.html#turtle.window_height)370371[`window_width()`](https://python-all.ru/3.8/library/turtle.html#turtle.window_width)372373**Методы ввода**374375[`textinput()`](https://python-all.ru/3.8/library/turtle.html#turtle.textinput)376377[`numinput()`](https://python-all.ru/3.8/library/turtle.html#turtle.numinput)378379**Методы, специфичные для Screen**380381[`bye()`](https://python-all.ru/3.8/library/turtle.html#turtle.bye)382383[`exitonclick()`](https://python-all.ru/3.8/library/turtle.html#turtle.exitonclick)384385[`setup()`](https://python-all.ru/3.8/library/turtle.html#turtle.setup)386387[`title()`](https://python-all.ru/3.8/library/turtle.html#turtle.title)388389## Методы RawTurtle/Turtle и соответствующие функции390391Большинство примеров в этом разделе ссылаются на экземпляр Turtle с именем `turtle`.392393### Движение черепахи394395#### `turtle.forward(distance)`396397#### `turtle.fd(distance)`398399**Параметры**400401**distance** – число (целое или с плавающей запятой)402403Перемещает черепаху вперед на указанное *distance*, в направлении, в котором черепаха смотрит.404405```pycon406>>> turtle.position()407(0.00,0.00)408>>> turtle.forward(25)409>>> turtle.position()410(25.00,0.00)411>>> turtle.forward(-75)412>>> turtle.position()413(-50.00,0.00)414```415416#### `turtle.back(distance)`417418#### `turtle.bk(distance)`419420#### `turtle.backward(distance)`421422**Параметры**423424**distance** – число425426Перемещает черепаху назад на *расстояние*, противоположно направлению, в котором черепаха смотрит. Направление черепахи не меняется.427428```pycon429>>> turtle.position()430(0.00,0.00)431>>> turtle.backward(30)432>>> turtle.position()433(-30.00,0.00)434```435436#### `turtle.right(angle)`437438#### `turtle.rt(angle)`439440**Параметры**441442**angle** – число (целое или с плавающей запятой)443444Поворачивает черепаху вправо на *angle* единиц. (По умолчанию единицы – градусы, но их можно изменить с помощью функций [`degrees()`](https://python-all.ru/3.8/library/turtle.html#turtle.degrees) и [`radians()`](https://python-all.ru/3.8/library/turtle.html#turtle.radians).) Направление поворота зависит от режима черепахи, см. [`mode()`](https://python-all.ru/3.8/library/turtle.html#turtle.mode).445446```pycon447>>> turtle.heading()44822.0449>>> turtle.right(45)450>>> turtle.heading()451337.0452```453454#### `turtle.left(angle)`455456#### `turtle.lt(angle)`457458**Параметры**459460**angle** – число (целое или с плавающей запятой)461462Поворачивает черепаху влево на *angle* единиц. (По умолчанию единицы – градусы, но их можно изменить с помощью функций [`degrees()`](https://python-all.ru/3.8/library/turtle.html#turtle.degrees) и [`radians()`](https://python-all.ru/3.8/library/turtle.html#turtle.radians).) Направление поворота зависит от режима черепахи, см. [`mode()`](https://python-all.ru/3.8/library/turtle.html#turtle.mode).463464```pycon465>>> turtle.heading()46622.0467>>> turtle.left(45)468>>> turtle.heading()46967.0470```471472#### `turtle.goto(x, y=None)`473474#### `turtle.setpos(x, y=None)`475476#### `turtle.setposition(x, y=None)`477478**Параметры**479480- **x** – число или пара/вектор чисел481- **y** – число или `None`482483Если *y* равно `None`, то *x* должно быть парой координат или [`Vec2D`](https://python-all.ru/3.8/library/turtle.html#turtle.Vec2D) (например, как возвращается функцией [`pos()`](https://python-all.ru/3.8/library/turtle.html#turtle.pos)).484485Перемещает черепаху в абсолютную позицию. Если перо опущено, рисует линию. Направление черепахи не меняется.486487```pycon488 >>> tp = turtle.pos()489 >>> tp490 (0.00,0.00)491 >>> turtle.setpos(60,30)492 >>> turtle.pos()493 (60.00,30.00)494 >>> turtle.setpos((20,80))495 >>> turtle.pos()496 (20.00,80.00)497 >>> turtle.setpos(tp)498 >>> turtle.pos()499 (0.00,0.00)500```501502#### `turtle.setx(x)`503504**Параметры**505506**x** – число (целое или с плавающей запятой)507508Устанавливает первую координату черепахи в *x*, вторая координата остается без изменений.509510```pycon511>>> turtle.position()512(0.00,240.00)513>>> turtle.setx(10)514>>> turtle.position()515(10.00,240.00)516```517518#### `turtle.sety(y)`519520**Параметры**521522**y** – число (целое или с плавающей запятой)523524Устанавливает вторую координату черепахи в *y*, первая координата остается без изменений.525526```pycon527>>> turtle.position()528(0.00,40.00)529>>> turtle.sety(-10)530>>> turtle.position()531(0.00,-10.00)532```533534#### `turtle.setheading(to_angle)`535536#### `turtle.seth(to_angle)`537538**Параметры**539540**to\_angle** – число (целое или с плавающей запятой)541542Устанавливает направление черепахи в *to\_angle*. Вот некоторые распространенные направления в градусах:543544| стандартный режим | режим Logo |545| --- | --- |546| 0 – восток | 0 – север |547| 90 – север | 90 – восток |548| 180 – запад | 180 – юг |549| 270 – юг | 270 – запад |550551```pycon552>>> turtle.setheading(90)553>>> turtle.heading()55490.0555```556557#### `turtle.home()`558559Перемещает черепаху в начало координат – (0,0) – и устанавливает её направление в начальную ориентацию (зависит от режима, см. [`mode()`](https://python-all.ru/3.8/library/turtle.html#turtle.mode)).560561```pycon562>>> turtle.heading()56390.0564>>> turtle.position()565(0.00,-10.00)566>>> turtle.home()567>>> turtle.position()568(0.00,0.00)569>>> turtle.heading()5700.0571```572573#### `turtle.circle(radius, extent=None, steps=None)`574575**Параметры**576577- **radius** – число578- **extent** – число (или `None`)579- **steps** – целое число (или `None`)580581Рисует окружность с заданным *radius*. Центр находится на *radius* единиц левее черепахи; *extent* – угол – определяет, какая часть окружности рисуется. Если *extent* не указан, рисуется вся окружность. Если *extent* не является полной окружностью, одна из конечных точек дуги – это текущее положение пера. Дуга рисуется против часовой стрелки, если *radius* положительный, и по часовой стрелке в противном случае. В конце направление черепахи изменяется на величину *extent*.582583Поскольку окружность аппроксимируется вписанным правильным многоугольником, *steps* определяет количество используемых шагов. Если не указано, вычисляется автоматически. Может использоваться для рисования правильных многоугольников.584585```pycon586>>> turtle.home()587>>> turtle.position()588(0.00,0.00)589>>> turtle.heading()5900.0591>>> turtle.circle(50)592>>> turtle.position()593(-0.00,0.00)594>>> turtle.heading()5950.0596>>> turtle.circle(120, 180) # нарисовать полуокружность597>>> turtle.position()598(0.00,240.00)599>>> turtle.heading()600180.0601```602603#### `turtle.dot(size=None, *color)`604605**Параметры**606607- **size** – целое число \>= 1 (если указано)608- **color** – строка цвета или кортеж числовых цветов609610Рисует круглую точку диаметром *size*, используя *color*. Если *size* не указан, используется максимальное из pensize+4 и 2\*pensize.611612```pycon613>>> turtle.home()614>>> turtle.dot()615>>> turtle.fd(50); turtle.dot(20, "blue"); turtle.fd(50)616>>> turtle.position()617(100.00,-0.00)618>>> turtle.heading()6190.0620```621622#### `turtle.stamp()`623624Наносит копию формы черепахи на холст в текущей позиции черепахи. Возвращает stamp\_id для этой печати, который можно использовать для её удаления вызовом `clearstamp(stamp_id)`.625626```pycon627>>> turtle.color("blue")628>>> turtle.stamp()62911630>>> turtle.fd(50)631```632633#### `turtle.clearstamp(stampid)`634635**Параметры**636637**stampid** – целое число, должно быть возвращаемым значением предыдущего вызова [`stamp()`](https://python-all.ru/3.8/library/turtle.html#turtle.stamp)638639Удаляет печать с заданным *stampid*.640641```pycon642>>> turtle.position()643(150.00,-0.00)644>>> turtle.color("blue")645>>> astamp = turtle.stamp()646>>> turtle.fd(50)647>>> turtle.position()648(200.00,-0.00)649>>> turtle.clearstamp(astamp)650>>> turtle.position()651(200.00,-0.00)652```653654#### `turtle.clearstamps(n=None)`655656**Параметры**657658**n** – целое число (или `None`)659660Удаляет все или первые/последние *n* отпечатков черепашки. Если *n* равно `None`, удаляет все отпечатки, если *n* \> 0, удаляет первые *n* отпечатков, а если *n* \< 0, удаляет последние *n* отпечатков.661662```pycon663>>> for i in range(8):664... turtle.stamp(); turtle.fd(30)6651366614667156681666917670186711967220673>>> turtle.clearstamps(2)674>>> turtle.clearstamps(-2)675>>> turtle.clearstamps()676```677678#### `turtle.undo()`679680Отменяет (повторно) последнее(ие) действие(я) черепашки. Количество доступных действий отмены определяется размером буфера отмены.681682```pycon683>>> for i in range(4):684... turtle.fd(50); turtle.lt(80)685...686>>> for i in range(8):687... turtle.undo()688```689690#### `turtle.speed(speed=None)`691692**Параметры**693694**speed** – целое число в диапазоне 0..10 или speedstring (см. ниже).695696Устанавливает скорость черепашки в целое значение от 0 до 10. Если аргумент не указан, возвращает текущую скорость.697698Если входное значение – число больше 10 или меньше 0.5, скорость устанавливается в 0. Speedstrings сопоставляются со значениями скорости следующим образом:699700- «самый быстрый»: 0701- «быстрый»: 10702- “обычная”: 6703- “медленная”: 3704- “самая медленная”: 1705706Скорости от 1 до 10 обеспечивают всё более быструю анимацию рисования линий и поворотов черепашки.707708Внимание: *speed* = 0 означает, что *никакой* анимации не происходит. forward/back заставляют черепашку прыгать, а left/right заставляют черепашку мгновенно поворачиваться.709710```pycon711>>> turtle.speed()7123713>>> turtle.speed('normal')714>>> turtle.speed()7156716>>> turtle.speed(9)717>>> turtle.speed()7189719```720721### Состояние черепашки722723#### `turtle.position()`724725#### `turtle.pos()`726727Возвращает текущее положение черепашки (x,y) (в виде [`Vec2D`](https://python-all.ru/3.8/library/turtle.html#turtle.Vec2D) вектора).728729```pycon730>>> turtle.pos()731(440.00,-0.00)732```733734#### `turtle.towards(x, y=None)`735736**Параметры**737738- **x** – число или пара/вектор чисел, или экземпляр черепашки739- **y** – число, если *x* – число, иначе `None`740741Возвращает угол между линией от положения черепашки до точки, указанной через (x,y), указанного вектора или другой черепашки. Это зависит от начальной ориентации черепашки, которая зависит от режима – “standard”/“world” или “logo”.742743```pycon744>>> turtle.goto(10, 10)745>>> turtle.towards(0,0)746225.0747```748749#### `turtle.xcor()`750751Возвращает x-координату черепашки.752753```pycon754>>> turtle.home()755>>> turtle.left(50)756>>> turtle.forward(100)757>>> turtle.pos()758(64.28,76.60)759>>> print(round(turtle.xcor(), 5))76064.27876761```762763#### `turtle.ycor()`764765Возвращает y-координату черепашки.766767```pycon768>>> turtle.home()769>>> turtle.left(60)770>>> turtle.forward(100)771>>> print(turtle.pos())772(50.00,86.60)773>>> print(round(turtle.ycor(), 5))77486.60254775```776777#### `turtle.heading()`778779Возвращает текущий курс черепашки (значение зависит от режима черепашки, см. [`mode()`](https://python-all.ru/3.8/library/turtle.html#turtle.mode)).780781```pycon782>>> turtle.home()783>>> turtle.left(67)784>>> turtle.heading()78567.0786```787788#### `turtle.distance(x, y=None)`789790**Параметры**791792- **x** – число или пара/вектор чисел, или экземпляр черепашки793- **y** – число, если *x* – число, иначе `None`794795Возвращает расстояние от черепашки до точки (x,y), указанного вектора или указанной другой черепашки в единицах шага черепашки.796797```pycon798>>> turtle.home()799>>> turtle.distance(30,40)80050.0801>>> turtle.distance((30,40))80250.0803>>> joe = Turtle()804>>> joe.forward(77)805>>> turtle.distance(joe)80677.0807```808809### Настройки измерения810811#### `turtle.degrees(fullcircle=360.0)`812813**Параметры**814815**fullcircle** – число816817Устанавливает единицы измерения углов, то есть задаёт количество «градусов» в полном обороте. Значение по умолчанию – 360 градусов.818819```pycon820>>> turtle.home()821>>> turtle.left(90)822>>> turtle.heading()82390.0824825Change angle measurement unit to grad (also known as gon,826grade, or gradian and equals 1/100-th of the right angle.)827>>> turtle.degrees(400.0)828>>> turtle.heading()829100.0830>>> turtle.degrees(360)831>>> turtle.heading()83290.0833```834835#### `turtle.radians()`836837Устанавливает единицы измерения углов в радианах. Эквивалентно `degrees(2*math.pi)`.838839```pycon840>>> turtle.home()841>>> turtle.left(90)842>>> turtle.heading()84390.0844>>> turtle.radians()845>>> turtle.heading()8461.5707963267948966847```848849### Управление пером850851#### Состояние рисования852853#### `turtle.pendown()`854855#### `turtle.pd()`856857#### `turtle.down()`858859Опускает перо – рисование при движении.860861#### `turtle.penup()`862863#### `turtle.pu()`864865#### `turtle.up()`866867Поднимает перо – при движении не рисует.868869#### `turtle.pensize(width=None)`870871#### `turtle.width(width=None)`872873**Параметры**874875**width** – положительное число876877Устанавливает толщину линии в *width* или возвращает её. Если для resizemode установлено «auto» и форма черепашки является многоугольником, этот многоугольник рисуется с такой же толщиной линии. Если аргумент не указан, возвращается текущая толщина пера.878879```pycon880>>> turtle.pensize()8811882>>> turtle.pensize(10) # отсюда рисуются линии шириной 10883```884885#### `turtle.pen(pen=None, **pendict)`886887**Параметры**888889- **pen** – словарь, содержащий некоторые или все из перечисленных ниже ключей890- **pendict** – один или несколько именованных аргументов, использующих перечисленные ниже ключи891892Возвращает или устанавливает атрибуты пера в виде «словаря пера» со следующими парами ключ/значение:893894- “отображается”: True/False895- “перо опущено”: True/False896- “цвет пера”: строка цвета или кортеж цвета897- “цвет заливки”: строка цвета или кортеж цвета898- “размер пера”: положительное число899- “скорость”: число от 0 до 10900- “режим изменения размера”: “auto” or “user” or “noresize”901- “коэффициент растяжения”: (положительное число, положительное число)902- «outline»: положительное число903- «tilt»: число904905Этот словарь можно передать аргументом в последующий вызов [`pen()`](https://python-all.ru/3.8/library/turtle.html#turtle.pen), чтобы восстановить предыдущее состояние пера. Кроме того, один или несколько из этих атрибутов можно указать как именованные аргументы. Это позволяет установить несколько атрибутов пера одной инструкцией.906907```pycon908>>> turtle.pen(fillcolor="black", pencolor="red", pensize=10)909>>> sorted(turtle.pen().items())910[('fillcolor', 'black'), ('outline', 1), ('pencolor', 'red'),911 ('pendown', True), ('pensize', 10), ('resizemode', 'noresize'),912 ('shearfactor', 0.0), ('shown', True), ('speed', 9),913 ('stretchfactor', (1.0, 1.0)), ('tilt', 0.0)]914>>> penstate=turtle.pen()915>>> turtle.color("yellow", "")916>>> turtle.penup()917>>> sorted(turtle.pen().items())[:3]918[('fillcolor', ''), ('outline', 1), ('pencolor', 'yellow')]919>>> turtle.pen(penstate, fillcolor="green")920>>> sorted(turtle.pen().items())[:3]921[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]922```923924#### `turtle.isdown()`925926Возвращает `True`, если перо опущено, и `False`, если поднято.927928```pycon929>>> turtle.penup()930>>> turtle.isdown()931False932>>> turtle.pendown()933>>> turtle.isdown()934True935```936937#### Управление цветом938939#### `turtle.pencolor(*args)`940941Возвращает или задаёт цвет пера.942943Допускаются четыре формата ввода:944945**`pencolor()`**946947Возвращает текущий pencolor в виде строки спецификации цвета или в виде кортежа (см. пример). Может использоваться как входные данные для другого вызова color/pencolor/fillcolor.948949**`pencolor(colorstring)`**950951Задаёт цвет пера равным *colorstring*, строке описания цвета Tk, например, `"red"`, `"yellow"` или `"#33cc8c"`.952953**`pencolor((r, g, b))`**954955Задаёт цвет пера по цвету RGB, представленному кортежем из *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode, где colormode равен 1.0 или 255 (см. [`colormode()`](https://python-all.ru/3.8/library/turtle.html#turtle.colormode)).956957**`pencolor(r, g, b)`**958959Задаёт цвет пера по цвету RGB, заданному *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode.960961Если форма черепахи (turtleshape) является многоугольником, то контур этого многоугольника рисуется вновь заданным цветом пера.962963```pycon964 >>> colormode()965 1.0966 >>> turtle.pencolor()967 'red'968 >>> turtle.pencolor("brown")969 >>> turtle.pencolor()970 'brown'971 >>> tup = (0.2, 0.8, 0.55)972 >>> turtle.pencolor(tup)973 >>> turtle.pencolor()974 (0.2, 0.8, 0.5490196078431373)975 >>> colormode(255)976 >>> turtle.pencolor()977 (51.0, 204.0, 140.0)978 >>> turtle.pencolor('#32c18f')979 >>> turtle.pencolor()980 (50.0, 193.0, 143.0)981```982983#### `turtle.fillcolor(*args)`984985Возвращает или задаёт цвет заливки.986987Допускаются четыре формата ввода:988989**`fillcolor()`**990991Возвращает текущий fillcolor в виде строки спецификации цвета, возможно в формате кортежа (см. пример). Может использоваться как входные данные для другого вызова color/pencolor/fillcolor.992993**`fillcolor(colorstring)`**994995Задаёт цвет заливки равным *colorstring*, строке описания цвета Tk, например, `"red"`, `"yellow"` или `"#33cc8c"`.996997**`fillcolor((r, g, b))`**998999Задаёт цвет заливки по цвету RGB, представленному кортежем из *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode, где colormode равен 1.0 или 255 (см. [`colormode()`](https://python-all.ru/3.8/library/turtle.html#turtle.colormode)).10001001**`fillcolor(r, g, b)`**10021003Задаёт цвет заливки по цвету RGB, заданному *r*, *g* и *b*. Каждое из значений *r*, *g* и *b* должно быть в диапазоне 0..colormode.10041005Если форма черепахи (turtleshape) является многоугольником, то внутренняя область этого многоугольника закрашивается вновь заданным цветом заливки.10061007```pycon1008 >>> turtle.fillcolor("violet")1009 >>> turtle.fillcolor()1010 'violet'1011 >>> turtle.pencolor()1012 (50.0, 193.0, 143.0)1013 >>> turtle.fillcolor((50, 193, 143)) # Integers, not floats1014 >>> turtle.fillcolor()1015 (50.0, 193.0, 143.0)1016 >>> turtle.fillcolor('#ffffff')1017 >>> turtle.fillcolor()1018 (255.0, 255.0, 255.0)1019```10201021#### `turtle.color(*args)`10221023Возвращает или задаёт цвет пера и цвет заливки.10241025Допускается несколько форматов ввода. Они используют от 0 до 3 аргументов следующим образом:10261027**`color()`**10281029Возвращает текущий цвет пера и текущий цвет заливки в виде пары строк или кортежей с описанием цвета, как в [`pencolor()`](https://python-all.ru/3.8/library/turtle.html#turtle.pencolor) и [`fillcolor()`](https://python-all.ru/3.8/library/turtle.html#turtle.fillcolor).10301031**`color(colorstring)`, `color((r,g,b))`, `color(r,g,b)`**10321033Аргументы как в [`pencolor()`](https://python-all.ru/3.8/library/turtle.html#turtle.pencolor); устанавливает и fillcolor, и pencolor в указанное значение.10341035**`color(colorstring1, colorstring2)`, `color((r1,g1,b1), (r2,g2,b2))`**10361037Эквивалентно `pencolor(colorstring1)` и `fillcolor(colorstring2)`, а также аналогично при использовании другого формата ввода.10381039Если форма черепахи – многоугольник, его контур и внутренняя область рисуются новыми установленными цветами.10401041```pycon1042 >>> turtle.color("red", "green")1043 >>> turtle.color()1044 ('red', 'green')1045 >>> color("#285078", "#a0c8f0")1046 >>> color()1047 ((40.0, 80.0, 120.0), (160.0, 200.0, 240.0))1048```10491050См. также: метод Screen [`colormode()`](https://python-all.ru/3.8/library/turtle.html#turtle.colormode).10511052#### Заливка10531054#### `turtle.filling()`10551056Возвращает состояние заливки (`True`, если заливка активна, иначе `False`).10571058```pycon1059 >>> turtle.begin_fill()1060 >>> if turtle.filling():1061 ... turtle.pensize(5)1062 ... else:1063 ... turtle.pensize(3)1064```10651066#### `turtle.begin_fill()`10671068Вызывается непосредственно перед рисованием фигуры, которую нужно залить.10691070#### `turtle.end_fill()`10711072Заливает фигуру, нарисованную после последнего вызова [`begin_fill()`](https://python-all.ru/3.8/library/turtle.html#turtle.begin_fill).10731074Будут ли залиты области пересечения для самопересекающихся многоугольников или нескольких фигур, зависит от графической подсистемы операционной системы, типа пересечения и количества пересечений. Например, звезда черепахи выше может быть либо полностью жёлтой, либо содержать белые области.10751076```pycon1077>>> turtle.color("black", "red")1078>>> turtle.begin_fill()1079>>> turtle.circle(80)1080>>> turtle.end_fill()1081```10821083#### Дополнительное управление рисованием10841085#### `turtle.reset()`10861087Удаляет рисунки черепахи с экрана, перемещает черепаху в центр и сбрасывает переменные в значения по умолчанию.10881089```pycon1090>>> turtle.goto(0,-22)1091>>> turtle.left(100)1092>>> turtle.position()1093(0.00,-22.00)1094>>> turtle.heading()1095100.01096>>> turtle.reset()1097>>> turtle.position()1098(0.00,0.00)1099>>> turtle.heading()11000.01101```11021103#### `turtle.clear()`11041105Удаляет рисунки черепахи с экрана. Черепаха не перемещается. Состояние и положение черепахи, а также рисунки других черепах не затрагиваются.11061107#### `turtle.write(arg, move=False, align="left", font=("Arial", 8, "normal"))`11081109**Параметры**11101111- **arg** – объект, который будет записан на TurtleScreen.1112- **move** – True/False1113- **align** – одна из строк: «left», «center» или «right».1114- **font** – тройка (имя\_шрифта, размер\_шрифта, тип\_шрифта)11151116Записывает текст (строковое представление *arg*) в текущей позиции черепахи в соответствии с выравниванием *align* («left», «center» или «right») и указанным шрифтом. Если *move* истинно, перо перемещается в правый нижний угол текста. По умолчанию *move* равно `False`.11171118```python1119>>> turtle.write("Home = ", True, align="center")1120>>> turtle.write((0,0), True)1121```11221123### Состояние черепахи11241125#### Видимость11261127#### `turtle.hideturtle()`11281129#### `turtle.ht()`11301131Делает черепаху невидимой. Рекомендуется делать это во время выполнения сложного рисунка, потому что скрытие черепахи заметно ускоряет рисование.11321133```pycon1134>>> turtle.hideturtle()1135```11361137#### `turtle.showturtle()`11381139#### `turtle.st()`11401141Делает черепаху видимой.11421143```pycon1144>>> turtle.showturtle()1145```11461147#### `turtle.isvisible()`11481149Возвращает `True`, если черепаха показана, и `False`, если она скрыта.11501151```python1152>>> turtle.hideturtle()1153>>> turtle.isvisible()1154False1155>>> turtle.showturtle()1156>>> turtle.isvisible()1157True1158```11591160#### Внешний вид11611162#### `turtle.shape(name=None)`11631164**Параметры**11651166**name** – a string which is a valid shapename11671168Устанавливает форму черепахи как форму с заданным *name* или, если имя не указано, возвращает имя текущей формы. Форма с именем *name* должна существовать в словаре форм TurtleScreen. Изначально доступны следующие многоугольные формы: «стрелка», «черепаха», «круг», «квадрат», «треугольник», «классическая». Чтобы узнать, как работать с формами, см. метод Screen [`register_shape()`](https://python-all.ru/3.8/library/turtle.html#turtle.register_shape).11691170```pycon1171>>> turtle.shape()1172'classic'1173>>> turtle.shape("turtle")1174>>> turtle.shape()1175'turtle'1176```11771178#### `turtle.resizemode(rmode=None)`11791180**Параметры**11811182**rmode** – one of the strings “auto”, “user”, “noresize”11831184Устанавливает режим изменения размера в одно из значений: «авто», «пользователь», «без изменения размера». Если *rmode* не указан, возвращает текущий режим изменения размера. Разные режимы изменения размера имеют следующие эффекты:11851186- “auto”: adapts the appearance of the turtle corresponding to the value of pensize.1187- “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.8/library/turtle.html#turtle.shapesize).1188- «без изменения размера»: адаптация внешнего вида черепахи не производится.11891190`resizemode("user")` вызывается [`shapesize()`](https://python-all.ru/3.8/library/turtle.html#turtle.shapesize) при использовании с аргументами.11911192```pycon1193>>> turtle.resizemode()1194'noresize'1195>>> turtle.resizemode("auto")1196>>> turtle.resizemode()1197'auto'1198```11991200#### `turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None)`12011202#### `turtle.turtlesize(stretch_wid=None, stretch_len=None, outline=None)`12031204**Параметры**12051206- **stretch\_wid** – положительное число1207- **stretch\_len** – положительное число1208- **outline** – положительное число12091210Возвращает или задаёт атрибуты пера: коэффициенты растяжения по x/y и/или контур. Устанавливает режим изменения размера в “user”. Если и только если режим изменения размера установлен в “user”, черепаха будет отображаться растянутой в соответствии с коэффициентами растяжения: *stretch\_wid* – коэффициент растяжения перпендикулярно её ориентации, *stretch\_len* – коэффициент растяжения в направлении её ориентации, *outline* определяет ширину контура фигуры.12111212```pycon1213>>> turtle.shapesize()1214(1.0, 1.0, 1)1215>>> turtle.resizemode("user")1216>>> turtle.shapesize(5, 5, 12)1217>>> turtle.shapesize()1218(5, 5, 12)1219>>> turtle.shapesize(outline=8)1220>>> turtle.shapesize()1221(5, 5, 8)1222```12231224#### `turtle.shearfactor(shear=None)`12251226**Параметры**12271228**shear** – число (необязательно)12291230Set 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.12311232```pycon1233 >>> turtle.shape("circle")1234 >>> turtle.shapesize(5,2)1235 >>> turtle.shearfactor(0.5)1236 >>> turtle.shearfactor()1237 0.51238```12391240#### `turtle.tilt(angle)`12411242**Параметры**12431244**angle** – a number12451246Повернуть форму черепахи на *angle* от текущего угла наклона, но *не* изменять направление черепахи (направление движения).12471248```pycon1249>>> turtle.reset()1250>>> turtle.shape("circle")1251>>> turtle.shapesize(5,2)1252>>> turtle.tilt(30)1253>>> turtle.fd(50)1254>>> turtle.tilt(30)1255>>> turtle.fd(50)1256```12571258#### `turtle.settiltangle(angle)`12591260**Параметры**12611262**angle** – a number12631264Поворачивает форму черепашки так, чтобы она указывала в направлении, заданном *angle*, независимо от текущего угла наклона. *Не* меняет курс черепашки (направление движения).12651266```pycon1267>>> turtle.reset()1268>>> turtle.shape("circle")1269>>> turtle.shapesize(5,2)1270>>> turtle.settiltangle(45)1271>>> turtle.fd(50)1272>>> turtle.settiltangle(-45)1273>>> turtle.fd(50)1274```12751276Устарело с версии 3.1.12771278#### `turtle.tiltangle(angle=None)`12791280**Параметры**12811282**angle** – число (необязательно)12831284Устанавливает или возвращает текущий угол наклона. Если задан угол, поворачивает форму черепахи, чтобы она указывала в направлении, заданном углом, независимо от текущего угла наклона, но *не* изменять направление черепахи (направление движения). Если угол не задан: возвращает текущий угол наклона, то есть угол между ориентацией формы черепахи и направлением черепахи (её направлением движения).12851286```pycon1287>>> turtle.reset()1288>>> turtle.shape("circle")1289>>> turtle.shapesize(5,2)1290>>> turtle.tilt(45)1291>>> turtle.tiltangle()129245.01293```12941295#### `turtle.shapetransform(t11=None, t12=None, t21=None, t22=None)`12961297**Параметры**12981299- **t11** – число (необязательно)1300- **t12** – число (необязательно)1301- **t21** – число (необязательно)1302- **t12** – число (необязательно)13031304Задаёт или возвращает текущую матрицу преобразования формы черепашки.13051306Если ни один из элементов матрицы не задан, возвращает матрицу преобразования в виде кортежа из 4 элементов. В противном случае задаёт указанные элементы и преобразует форму черепашки согласно матрице, состоящей из первой строки t11, t12 и второй строки t21, t22. Определитель t11 \* t22 - t12 \* t21 не должен быть равен нулю, иначе будет вызвана ошибка. Изменяет stretchfactor, shearfactor и tiltangle в соответствии с заданной матрицей.13071308```pycon1309>>> turtle = Turtle()1310>>> turtle.shape("square")1311>>> turtle.shapesize(4,2)1312>>> turtle.shearfactor(-0.5)1313>>> turtle.shapetransform()1314(4.0, -1.0, -0.0, 2.0)1315```13161317#### `turtle.get_shapepoly()`13181319Возвращает текущий многоугольник формы в виде кортежа пар координат. Это можно использовать для определения новой формы или компонентов составной формы.13201321```pycon1322>>> turtle.shape("square")1323>>> turtle.shapetransform(4, -1, 0, 2)1324>>> turtle.get_shapepoly()1325((50, -20), (30, 20), (-50, 20), (-30, -20))1326```13271328### Использование событий13291330#### `turtle.onclick(fun, btn=1, add=None)`13311332**Параметры**13331334- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1335- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1336- **add** – `True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку13371338Привязывает *fun* к событиям щелчка мыши на этой черепашке. Если *fun* равно `None`, существующие привязки удаляются. Пример для анонимной черепашки, т.е. процедурного способа:13391340```pycon1341>>> def turn(x, y):1342... left(180)1343...1344>>> onclick(turn) # Теперь щелчок по черепашке повернёт её.1345>>> onclick(None) # привязка события будет удалена1346```13471348#### `turtle.onrelease(fun, btn=1, add=None)`13491350**Параметры**13511352- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1353- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1354- **add** – `True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку13551356Привязывает *fun* к событиям отпускания кнопки мыши на этой черепашке. Если *fun* равно `None`, существующие привязки удаляются.13571358```pycon1359>>> class MyTurtle(Turtle):1360... def glow(self,x,y):1361... self.fillcolor("red")1362... def unglow(self,x,y):1363... self.fillcolor("")1364...1365>>> turtle = MyTurtle()1366>>> turtle.onclick(turtle.glow) # нажатие на черепашку меняет цвет заливки на красный,1367>>> turtle.onrelease(turtle.unglow) # отпускание делает его прозрачным.1368```13691370#### `turtle.ondrag(fun, btn=1, add=None)`13711372**Параметры**13731374- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1375- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1376- **add** – `True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку13771378Привязывает *fun* к событиям перемещения мыши на этой черепашке. Если *fun* равно `None`, существующие привязки удаляются.13791380Примечание: Каждая последовательность событий перемещения мыши на черепашке предваряется событием щелчка мыши на этой черепашке.13811382```pycon1383>>> turtle.ondrag(turtle.goto)1384```13851386После этого щелчок и перетаскивание черепашки будет перемещать её по экрану, создавая рисунки от руки (если перо опущено).13871388### Специальные методы черепашки13891390#### `turtle.begin_poly()`13911392Начинает запись вершин многоугольника. Текущая позиция черепашки является первой вершиной многоугольника.13931394#### `turtle.end_poly()`13951396Остановить запись вершин многоугольника. Текущая позиция черепашки – последняя вершина многоугольника. Она будет соединена с первой вершиной.13971398#### `turtle.get_poly()`13991400Возвращает последний записанный многоугольник.14011402```pycon1403>>> turtle.home()1404>>> turtle.begin_poly()1405>>> turtle.fd(100)1406>>> turtle.left(20)1407>>> turtle.fd(30)1408>>> turtle.left(60)1409>>> turtle.fd(50)1410>>> turtle.end_poly()1411>>> p = turtle.get_poly()1412>>> register_shape("myFavouriteShape", p)1413```14141415#### `turtle.clone()`14161417Создаёт и возвращает клон черепашки с теми же координатами, направлением и свойствами черепашки.14181419```pycon1420>>> mick = Turtle()1421>>> joe = mick.clone()1422```14231424#### `turtle.getturtle()`14251426#### `turtle.getpen()`14271428Возвращает сам объект Turtle. Единственное разумное применение – как функция для возврата «анонимной черепашки»:14291430```pycon1431>>> pet = getturtle()1432>>> pet.fd(50)1433>>> pet1434<turtle.Turtle object at 0x...>1435```14361437#### `turtle.getscreen()`14381439Возвращает объект [`TurtleScreen`](https://python-all.ru/3.8/library/turtle.html#turtle.TurtleScreen), на котором черепашка рисует. Затем для этого объекта можно вызывать методы TurtleScreen.14401441```pycon1442>>> ts = turtle.getscreen()1443>>> ts1444<turtle._Screen object at 0x...>1445>>> ts.bgcolor("pink")1446```14471448#### `turtle.setundobuffer(size)`14491450**Параметры**14511452**size** – целое число или `None`14531454Устанавливает или отключает буфер отмены. Если *size* – целое число, создаётся пустой буфер отмены указанного размера. *size* задаёт максимальное количество действий черепашки, которые можно отменить с помощью метода/функции [`undo()`](https://python-all.ru/3.8/library/turtle.html#turtle.undo). Если *size* равно `None`, буфер отмены отключается.14551456```pycon1457>>> turtle.setundobuffer(42)1458```14591460#### `turtle.undobufferentries()`14611462Возвращает количество записей в буфере отмены.14631464```pycon1465>>> while undobufferentries():1466... undo()1467```14681469### Составные фигуры14701471Для использования составных фигур черепашки, состоящих из нескольких многоугольников разного цвета, необходимо явно использовать вспомогательный класс [`Shape`](https://python-all.ru/3.8/library/turtle.html#turtle.Shape), как описано ниже:147214731. Создаёт пустой объект Shape типа «compound».14742. Добавьте в этот объект необходимое количество компонентов с помощью метода `addcomponent()`.14751476 Например:14771478 ```pycon1479 >>> s = Shape("compound")1480 >>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))1481 >>> s.addcomponent(poly1, "red", "blue")1482 >>> poly2 = ((0,0),(10,-5),(-10,-5))1483 >>> s.addcomponent(poly2, "blue", "red")1484 ```14853. Теперь добавьте Shape в список фигур экрана и используйте его:14861487 ```pycon1488 >>> register_shape("myshape", s)1489 >>> shape("myshape")1490 ```14911492> **Примечание**1493>1494> Класс [`Shape`](https://python-all.ru/3.8/library/turtle.html#turtle.Shape) используется внутри метода [`register_shape()`](https://python-all.ru/3.8/library/turtle.html#turtle.register_shape) разными способами. Разработчику приложения приходится иметь дело с классом Shape *только* при использовании составных фигур, как показано выше!14951496## Методы TurtleScreen/Screen и соответствующие функции14971498Большинство примеров в этом разделе относятся к экземпляру TurtleScreen с именем `screen`.14991500### Управление окном15011502#### `turtle.bgcolor(*args)`15031504**Параметры**15051506**args** – строка цвета, три числа в диапазоне от 0 до colormode или кортеж из трёх таких чисел.15071508Устанавливает или возвращает цвет фона экрана TurtleScreen.15091510```pycon1511>>> screen.bgcolor("orange")1512>>> screen.bgcolor()1513'orange'1514>>> screen.bgcolor("#800080")1515>>> screen.bgcolor()1516(128.0, 0.0, 128.0)1517```15181519#### `turtle.bgpic(picname=None)`15201521**Параметры**15221523**picname** – строка, имя gif-файла или `"nopic"`, или `None`15241525Устанавливает фоновое изображение или возвращает имя текущего фонового изображения. Если *picname* – имя файла, устанавливает соответствующее изображение как фон. Если *picname* равно `"nopic"`, удаляет фоновое изображение, если оно есть. Если *picname* равно `None`, возвращает имя файла текущего фонового изображения.15261527```python1528>>> screen.bgpic()1529'nopic'1530>>> screen.bgpic("landscape.gif")1531>>> screen.bgpic()1532"landscape.gif"1533```15341535#### `turtle.clear()`15361537#### `turtle.clearscreen()`15381539Удаляет все рисунки и всех черепах с TurtleScreen. Сбрасывает теперь пустой TurtleScreen в исходное состояние: белый фон, без фонового изображения, без привязок событий и с включённой трассировкой.15401541> **Примечание**1542>1543> Этот метод TurtleScreen доступен как глобальная функция только под именем `clearscreen`. Глобальная функция `clear` – другая, производная от метода Turtle `clear`.15441545#### `turtle.reset()`15461547#### `turtle.resetscreen()`15481549Сбрасывает всех черепах на экране в исходное состояние.15501551> **Примечание**1552>1553> Этот метод TurtleScreen доступен как глобальная функция только под именем `resetscreen`. Глобальная функция `reset` – это другая, производная от метода Turtle `reset`.15541555#### `turtle.screensize(canvwidth=None, canvheight=None, bg=None)`15561557**Параметры**15581559- **canvwidth** – положительное целое, новая ширина холста в пикселях1560- **canvheight** – положительное целое, новая высота холста в пикселях1561- **bg** – строка цвета или кортеж цвета, новый цвет фона15621563Если аргументы не переданы, возвращает текущие (canvaswidth, canvasheight). В противном случае изменяет размер холста, на котором рисуют черепахи. Не изменяет окно рисования. Для просмотра скрытых частей холста используйте полосы прокрутки. С помощью этого метода можно сделать видимыми те части рисунка, которые раньше находились за пределами холста.15641565```python1566>>> screen.screensize()1567(400, 300)1568>>> screen.screensize(2000,1500)1569>>> screen.screensize()1570(2000, 1500)1571```15721573например, для поиска случайно сбежавшей черепахи ;-)15741575#### `turtle.setworldcoordinates(llx, lly, urx, ury)`15761577**Параметры**15781579- **llx** – число, x-координата левого нижнего угла холста1580- **lly** – число, y-координата левого нижнего угла холста1581- **urx** – число, x-координата правого верхнего угла холста1582- **ury** – число, y-координата правого верхнего угла холста15831584Устанавливает пользовательскую систему координат и при необходимости переключается в режим «world». Это выполняет `screen.reset()`. Если режим «world» уже активен, все рисунки перерисовываются в соответствии с новыми координатами.15851586**ВНИМАНИЕ**: в пользовательских системах координат углы могут отображаться искажёнными.15871588```pycon1589>>> screen.reset()1590>>> screen.setworldcoordinates(-50,-7.5,50,7.5)1591>>> for _ in range(72):1592... left(10)1593...1594>>> for _ in range(8):1595... left(45); fd(2) # правильный восьмиугольник1596```15971598### Управление анимацией15991600#### `turtle.delay(delay=None)`16011602**Параметры**16031604**delay** – положительное целое16051606Устанавливает или возвращает задержку *delay* рисования в миллисекундах. (Это приблизительно интервал времени между двумя последовательными обновлениями холста.) Чем больше задержка рисования, тем медленнее анимация.16071608Необязательный аргумент:16091610```pycon1611>>> screen.delay()1612101613>>> screen.delay(5)1614>>> screen.delay()161551616```16171618#### `turtle.tracer(n=None, delay=None)`16191620**Параметры**16211622- **n** – неотрицательное целое число1623- **delay** – неотрицательное целое число16241625Включает или выключает анимацию черепашки и устанавливает задержку для обновления рисунков. Если задан *n*, то реально выполняется только каждое n-е обычное обновление экрана. (Может использоваться для ускорения рисования сложной графики.) При вызове без аргументов возвращает текущее сохранённое значение n. Второй аргумент задаёт значение задержки (см. [`delay()`](https://python-all.ru/3.8/library/turtle.html#turtle.delay)).16261627```pycon1628>>> screen.tracer(8, 25)1629>>> dist = 21630>>> for i in range(200):1631... fd(dist)1632... rt(90)1633... dist += 21634```16351636#### `turtle.update()`16371638Выполняет обновление TurtleScreen. Используется, когда tracer выключен.16391640См. также метод [`speed()`](https://python-all.ru/3.8/library/turtle.html#turtle.speed) RawTurtle/Turtle.16411642### Использование событий экрана16431644#### `turtle.listen(xdummy=None, ydummy=None)`16451646Устанавливает фокус на TurtleScreen (для сбора событий клавиш). Фиктивные аргументы предусмотрены, чтобы можно было передать [`listen()`](https://python-all.ru/3.8/library/turtle.html#turtle.listen) методу onclick.16471648#### `turtle.onkey(fun, key)`16491650#### `turtle.onkeyrelease(fun, key)`16511652**Параметры**16531654- **fun** – функция без аргументов или `None`1655- **key** – строка: клавиша (например, “a”) или символ клавиши (например, “space”)16561657Привязывает *fun* к событию отпускания клавиши key. Если *fun* равен `None`, привязки событий удаляются. Замечание: для регистрации событий клавиш TurtleScreen должен иметь фокус. (См. метод [`listen()`](https://python-all.ru/3.8/library/turtle.html#turtle.listen).)16581659```pycon1660>>> def f():1661... fd(50)1662... lt(60)1663...1664>>> screen.onkey(f, "Up")1665>>> screen.listen()1666```16671668#### `turtle.onkeypress(fun, key=None)`16691670**Параметры**16711672- **fun** – функция без аргументов или `None`1673- **key** – строка: клавиша (например, “a”) или символ клавиши (например, “space”)16741675Привязывает *fun* к событию нажатия клавиши key, если key задан, или к любому событию нажатия клавиши, если key не задан. Замечание: для регистрации событий клавиш TurtleScreen должен иметь фокус. (См. метод [`listen()`](https://python-all.ru/3.8/library/turtle.html#turtle.listen).)16761677```pycon1678>>> def f():1679... fd(50)1680...1681>>> screen.onkey(f, "Up")1682>>> screen.listen()1683```16841685#### `turtle.onclick(fun, btn=1, add=None)`16861687#### `turtle.onscreenclick(fun, btn=1, add=None)`16881689**Параметры**16901691- **fun** – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте1692- **btn** – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши)1693- **add** – `True` или `False` – если `True`, будет добавлена новая привязка, иначе она заменит предыдущую привязку16941695Привязывает *fun* к событиям щелчка мыши на этом экране. Если *fun* равен `None`, существующие привязки удаляются.16961697Пример для экземпляра TurtleScreen с именем `screen` и экземпляра Turtle с именем `turtle`:16981699```pycon1700>>> screen.onclick(turtle.goto) # Последующий щелчок по TurtleScreen заставит1701>>> # черепашку переместиться в точку щелчка.1702>>> screen.onclick(None) # снова удалить привязку события1703```17041705> **Примечание**1706>1707> Этот метод TurtleScreen доступен как глобальная функция только под именем `onscreenclick`. Глобальная функция `onclick` – это другая, производная от метода Turtle `onclick`.17081709#### `turtle.ontimer(fun, t=0)`17101711**Параметры**17121713- **fun** – функция без аргументов1714- **t** – число \>= 017151716Устанавливает таймер, который вызывает *fun* через *t* миллисекунд.17171718```pycon1719>>> running = True1720>>> def f():1721... if running:1722... fd(50)1723... lt(60)1724... screen.ontimer(f, 250)1725>>> f() ### заставляет черепашку обходить вокруг1726>>> running = False1727```17281729#### `turtle.mainloop()`17301731#### `turtle.done()`17321733Запускает цикл событий – вызывает функцию mainloop из Tkinter. Должна быть последней инструкцией в программе с черепашьей графикой. Должна *не* использоваться, если скрипт запускается из IDLE в режиме -n (без подпроцесса) – для интерактивного использования черепашьей графики.17341735```python1736>>> screen.mainloop()1737```17381739### Методы ввода17401741#### `turtle.textinput(title, prompt)`17421743**Параметры**17441745- **title** – строка1746- **prompt** – строка17471748Отображает диалоговое окно для ввода строки. Параметр title – заголовок диалогового окна, prompt – текст, в основном описывающий, какую информацию нужно ввести. Возвращает введённую строку. Если диалог отменён, возвращает `None`.17491750```python1751>>> screen.textinput("NIM", "Name of first player:")1752```17531754#### `turtle.numinput(title, prompt, default=None, minval=None, maxval=None)`17551756**Параметры**17571758- **title** – строка1759- **prompt** – строка1760- **default** – число (необязательно)1761- **minval** – число (необязательно)1762- **maxval** – число (необязательно)17631764Открывает диалоговое окно для ввода числа. title – заголовок диалогового окна, prompt – текст, в основном описывающий, какую числовую информацию необходимо ввести. default: значение по умолчанию, minval: минимальное значение для ввода, maxval: максимальное значение для ввода. Вводимое число должно находиться в диапазоне minval .. maxval, если эти значения заданы. Если нет, выводится подсказка, и диалог остаётся открытым для исправления. Возвращает введённое число. Если диалог отменён, возвращает `None`.17651766```python1767>>> screen.numinput("Poker", "Your stakes:", 1000, minval=10, maxval=10000)1768```17691770### Настройки и специальные методы17711772#### `turtle.mode(mode=None)`17731774**Параметры**17751776**mode** – одна из строк “standard”, “logo” или “world”17771778Устанавливает режим черепахи (“standard”, “logo” или “world”) и выполняет сброс. Если режим не задан, возвращается текущий режим.17791780Режим “standard” совместим со старой [`turtle`](https://python-all.ru/3.8/library/turtle.html#module-turtle). Режим “logo” совместим с большинством черепашьих графических средств Logo. Режим “world” использует заданные пользователем «мировые координаты». **Внимание**: в этом режиме углы выглядят искажёнными, если `x/y` коэффициент единицы измерения не равен 1.17811782| Режим | Начальное направление черепахи | положительные углы |1783| --- | --- | --- |1784| “standard” | вправо (восток) | против часовой стрелки |1785| “logo” | вверх (север) | по часовой стрелке |17861787```pycon1788>>> mode("logo") # сбрасывает направление черепашки на север1789>>> mode()1790'logo'1791```17921793#### `turtle.colormode(cmode=None)`17941795**Параметры**17961797**cmode** – одно из значений 1.0 или 25517981799Возвращает цветовой режим или устанавливает его в значение 1.0 или 255. Впоследствии значения *r*, *g*, *b* цветовых троек должны находиться в диапазоне от 0 до *cmode*.18001801```pycon1802>>> screen.colormode(1)1803>>> turtle.pencolor(240, 160, 80)1804Traceback (most recent call last):1805 ...1806TurtleGraphicsError: bad color sequence: (240, 160, 80)1807>>> screen.colormode()18081.01809>>> screen.colormode(255)1810>>> screen.colormode()18112551812>>> turtle.pencolor(240,160,80)1813```18141815#### `turtle.getcanvas()`18161817Возвращает Canvas данного TurtleScreen. Полезно для тех, кто знает, что делать с Canvas из Tkinter.18181819```pycon1820>>> cv = screen.getcanvas()1821>>> cv1822<turtle.ScrolledCanvas object ...>1823```18241825#### `turtle.getshapes()`18261827Возвращает список названий всех доступных в данный момент форм черепашки.18281829```pycon1830>>> screen.getshapes()1831['arrow', 'blank', 'circle', ..., 'turtle']1832```18331834#### `turtle.register_shape(name, shape=None)`18351836#### `turtle.addshape(name, shape=None)`18371838Эту функцию можно вызвать тремя различными способами:183918401. *name* – это имя gif-файла, а *shape* – это `None`: установите соответствующую форму изображения.18411842 ```python1843 >>> screen.register_shape("turtle.gif")1844 ```18451846 > **Примечание**1847 >1848 > Формы изображений *не* поворачиваются при повороте черепашки, поэтому они не отображают направление черепашки!18492. *name* – произвольная строка, а *shape* – кортеж пар координат: устанавливает соответствующую многоугольную форму.18501851 ```pycon1852 >>> screen.register_shape("triangle", ((5,-3), (0,5), (-5,-3)))1853 ```18543. *name* – произвольная строка, а shape – (составной) объект [`Shape`](https://python-all.ru/3.8/library/turtle.html#turtle.Shape): устанавливает соответствующую составную фигуру.18551856Добавляет форму черепашки в список форм TurtleScreen. Только зарегистрированные таким образом формы можно использовать, выполнив команду `shape(shapename)`.18571858#### `turtle.turtles()`18591860Возвращает список черепашек на экране.18611862```pycon1863>>> for turtle in screen.turtles():1864... turtle.color("red")1865```18661867#### `turtle.window_height()`18681869Возвращает высоту окна черепашки.18701871```python1872>>> screen.window_height()18734801874```18751876#### `turtle.window_width()`18771878Возвращает ширину окна черепашки.18791880```python1881>>> screen.window_width()18826401883```18841885### Методы, специфичные для Screen, не наследуемые от TurtleScreen18861887#### `turtle.bye()`18881889Закрывает окно графики черепашки.18901891#### `turtle.exitonclick()`18921893Привязывает метод `bye()` к щелчкам мыши на экране.18941895Если значение «using\_IDLE» в словаре конфигурации равно `False` (значение по умолчанию), также запускается главный цикл. Примечание: если используется IDLE с ключом `-n` (без подпроцесса), это значение следует установить в `True` в `turtle.cfg`. В этом случае собственный главный цикл IDLE активен также для клиентского скрипта.18961897#### `turtle.setup(width=_CFG["width"], height=_CFG["height"], startx=_CFG["leftright"], starty=_CFG["topbottom"])`18981899Устанавливает размер и положение главного окна. Значения аргументов по умолчанию хранятся в словаре конфигурации и могут быть изменены через файл `turtle.cfg`.19001901**Параметры**19021903- **width** – если целое число, размер в пикселях; если число с плавающей запятой, доля экрана; по умолчанию – 50% экрана.1904- **height** – если целое число, высота в пикселях; если число с плавающей запятой, доля от экрана; по умолчанию 75% экрана1905- **startx** – если положительное, начальная позиция в пикселях от левого края экрана; если отрицательное – от правого края; если `None`, окно центрируется по горизонтали1906- **starty** – если положительное, начальная позиция в пикселях от верхнего края экрана; если отрицательное – от нижнего края; если `None`, окно центрируется по вертикали19071908```pycon1909>>> screen.setup (width=200, height=200, startx=0, starty=0)1910>>> # устанавливает окно размером 200x200 пикселей в верхнем левом углу экрана1911>>> screen.setup(width=.75, height=0.5, startx=None, starty=None)1912>>> # устанавливает окно 75% на 50% экрана и центрирует его1913```19141915#### `turtle.title(titlestring)`19161917**Параметры**19181919**titlestring** – строка, отображаемая в заголовке окна черепашьей графики19201921Устанавливает заголовок окна черепашки равным *titlestring*.19221923```pycon1924>>> screen.title("Welcome to the turtle zoo!")1925```19261927## Открытые классы19281929#### `class turtle.RawTurtle(canvas)`19301931#### `class turtle.RawPen(canvas)`19321933**Параметры**19341935**canvas** – `tkinter.Canvas`, [`ScrolledCanvas`](https://python-all.ru/3.8/library/turtle.html#turtle.ScrolledCanvas) или [`TurtleScreen`](https://python-all.ru/3.8/library/turtle.html#turtle.TurtleScreen)19361937Создаёт черепашку. Объект черепашки обладает всеми методами, описанными выше как «методы Turtle/RawTurtle».19381939#### `class turtle.Turtle`19401941Подкласс RawTurtle, имеет тот же интерфейс, но рисует на объекте [`Screen`](https://python-all.ru/3.8/library/turtle.html#turtle.Screen) по умолчанию, который создаётся автоматически при первом обращении.19421943#### `class turtle.TurtleScreen(cv)`19441945**Параметры**19461947**cv** – `tkinter.Canvas`19481949Предоставляет экранно-ориентированные методы, такие как `setbg()` и другие, описанные выше.19501951#### `class turtle.Screen`19521953Подкласс TurtleScreen, [дополненный четырьмя методами](https://python-all.ru/3.8/library/turtle.html#screenspecific).19541955#### `class turtle.ScrolledCanvas(master)`19561957**Параметры**19581959**master** – виджет Tkinter, в который помещается ScrolledCanvas; например, Tkinter-холст с добавленными полосами прокрутки19601961Используется классом Screen, который, таким образом, автоматически предоставляет ScrolledCanvas в качестве поля для черепашек.19621963#### `class turtle.Shape(type_, data)`19641965**Параметры**19661967**type\_** – одна из строк: «polygon», «image», «compound»19681969Структура данных для описания фигур. Пара `(type_, data)` должна соответствовать следующей спецификации:19701971| *type\_* | *данные* |1972| --- | --- |1973| «polygon» | кортеж многоугольника, т.е. кортеж пар координат |1974| «image» | изображение (в таком виде используется только внутри!) |1975| «compound» | `None` (составная фигура должна строиться с помощью метода [`addcomponent()`](https://python-all.ru/3.8/library/turtle.html#turtle.Shape.addcomponent)) |19761977#### `addcomponent(poly, fill, outline=None)`19781979**Параметры**19801981- **poly** – многоугольник, т.е. кортеж пар чисел1982- **fill** – цвет, которым будет заполнен *poly*1983- **outline** – цвет контура многоугольника (если задан)19841985Пример:19861987```pycon1988>>> poly = ((0,0),(10,-5),(0,10),(-10,-5))1989>>> s = Shape("compound")1990>>> s.addcomponent(poly, "red", "blue")1991>>> # ... добавьте больше компонентов, а затем используйте register_shape()1992```19931994См. [Составные фигуры](https://python-all.ru/3.8/library/turtle.html#compoundshapes).19951996#### `class turtle.Vec2D(x, y)`19971998Двумерный векторный класс, используемый как вспомогательный класс для реализации graphics черепашки. Может быть полезен и для программ с графикой черепашки. Производный от tuple, так что вектор – это кортеж!19992000Предоставляет (для векторов *a*, *b* и числа *k*):20012002- `a + b` сложение векторов2003- `a - b` вычитание векторов2004- `a * b` скалярное произведение2005- `k * a` и `a * k` умножение на скаляр2006- `abs(a)` абсолютное значение a2007- `a.rotate(angle)` поворот20082009## Справка и настройка20102011### Как пользоваться справкой20122013Публичные методы классов Screen и Turtle подробно документированы через docstrings. Их можно использовать как онлайн-справку через средства помощи Python:20142015- При использовании IDLE всплывающие подсказки показывают сигнатуры и первые строки docstrings для введённых вызовов функций/методов.2016- Вызов [`help()`](https://python-all.ru/3.8/library/functions.html#help) для методов или функций отображает docstrings:20172018 ```python2019 >>> help(Screen.bgcolor)2020 Help on method bgcolor in module turtle:20212022 bgcolor(self, *args) unbound turtle.Screen method2023 Set or return backgroundcolor of the TurtleScreen.20242025 Arguments (if given): a color string or three numbers2026 in the range 0..colormode or a 3-tuple of such numbers.20272028 >>> screen.bgcolor("orange")2029 >>> screen.bgcolor()2030 "orange"2031 >>> screen.bgcolor(0.5,0,0.5)2032 >>> screen.bgcolor()2033 "#800080"20342035 >>> help(Turtle.penup)2036 Help on method penup in module turtle:20372038 penup(self) unbound turtle.Turtle method2039 Pull the pen up -- no drawing when moving.20402041 Aliases: penup | pu | up20422043 No argument20442045 >>> turtle.penup()2046 ```2047- Docstrings функций, производных от методов, имеют изменённую форму:20482049 ```python2050 >>> help(bgcolor)2051 Help on function bgcolor in module turtle:20522053 bgcolor(*args)2054 Set or return backgroundcolor of the TurtleScreen.20552056 Arguments (if given): a color string or three numbers2057 in the range 0..colormode or a 3-tuple of such numbers.20582059 Example::20602061 >>> bgcolor("orange")2062 >>> bgcolor()2063 "orange"2064 >>> bgcolor(0.5,0,0.5)2065 >>> bgcolor()2066 "#800080"20672068 >>> help(penup)2069 Help on function penup in module turtle:20702071 penup()2072 Pull the pen up -- no drawing when moving.20732074 Aliases: penup | pu | up20752076 No argument20772078 Example:2079 >>> penup()2080 ```20812082Эти изменённые docstrings создаются автоматически вместе с определениями функций, которые производятся от методов во время импорта.20832084### Перевод docstrings на разные языки20852086Существует утилита для создания словаря, ключами которого являются имена методов, а значениями – docstrings публичных методов классов Screen и Turtle.20872088#### `turtle.write_docstringdict(filename="turtle_docstringdict")`20892090**Параметры**20912092**filename** – строка, используемая как имя файла20932094Создаёт и записывает словарь docstring в Python-скрипт с заданным именем файла. Эту функцию необходимо вызывать явно (она не используется классами графики черепашки). Словарь docstring будет записан в Python-скрипт `filename.py`. Он предназначен для использования в качестве шаблона для перевода docstrings на разные языки.20952096Если вы (или ваши студенты) хотите использовать [`turtle`](https://python-all.ru/3.8/library/turtle.html#module-turtle) с онлайн-справкой на вашем родном языке, необходимо перевести docstrings и сохранить полученный файл, например, как `turtle_docstringdict_german.py`.20972098Если в вашем файле `turtle.cfg` есть соответствующая запись, этот словарь будет считан на этапе импорта и заменит оригинальные англоязычные строки документации.20992100На момент написания этого текста есть словари строк документации на немецком и итальянском. (Запросы направляйте на [glingl@aon.at](https://python-all.ru/3.8/library/turtle.html).)21012102### Как настроить Screen и Turtles21032104Встроенная конфигурация по умолчанию имитирует внешний вид и поведение старого модуля turtle, чтобы сохранить максимально возможную совместимость с ним.21052106Если вы хотите использовать другую конфигурацию, которая лучше отражает возможности этого модуля или лучше соответствует вашим потребностям, например, для использования в классе, вы можете подготовить файл конфигурации `turtle.cfg`, который будет прочитан на этапе импорта и изменит конфигурацию в соответствии с его настройками.21072108Встроенная конфигурация соответствует следующему turtle.cfg:21092110```python2111width = 0.52112height = 0.752113leftright = None2114topbottom = None2115canvwidth = 4002116canvheight = 3002117mode = standard2118colormode = 1.02119delay = 102120undobuffersize = 10002121shape = classic2122pencolor = black2123fillcolor = black2124resizemode = noresize2125visible = True2126language = english2127exampleturtle = turtle2128examplescreen = screen2129title = Python Turtle Graphics2130using_IDLE = False2131```21322133Краткое пояснение выбранных записей:21342135- Первые четыре строки соответствуют аргументам метода `Screen.setup()`.2136- Строки 5 и 6 соответствуют аргументам метода `Screen.screensize()`.2137- *shape* может быть любой из встроенных форм, например: arrow, turtle и т.д. Для получения дополнительной информации попробуйте `help(shape)`.2138- Если требуется не использовать цвет заливки (т.е. сделать черепашку прозрачной), необходимо написать `fillcolor = ""` (но все непустые строки не должны содержать кавычки в cfg-файле).2139- Если вы хотите отразить состояние черепашки, вы должны использовать `resizemode = auto`.2140- Если задать, например, `language = italian`, то словарь docstringdict `turtle_docstringdict_italian.py` будет загружен во время импорта (если он присутствует в пути импорта, например, в том же каталоге, что и [`turtle`](https://python-all.ru/3.8/library/turtle.html#module-turtle)).2141- Записи *exampleturtle* и *examplescreen* задают имена этих объектов, как они встречаются в строках документации. Преобразование строк документации методов в строки документации функций удалит эти имена из строк документации.2142- *using\_IDLE*: Установите это в `True`, если вы регулярно работаете с IDLE и его ключом -n («без подпроцесса»). Это предотвратит вход [`exitonclick()`](https://python-all.ru/3.8/library/turtle.html#turtle.exitonclick) в главный цикл.21432144Может быть файл `turtle.cfg` в каталоге, где хранится [`turtle`](https://python-all.ru/3.8/library/turtle.html#module-turtle), и дополнительный файл в текущем рабочем каталоге. Последний переопределит настройки первого.21452146Каталог `Lib/turtledemo` содержит файл `turtle.cfg`. Вы можете изучить его как пример и увидеть его эффекты при запуске демонстраций (желательно не из средства просмотра демонстраций).21472148## [`turtledemo`](https://python-all.ru/3.8/library/turtle.html#module-turtledemo) – Демонстрационные скрипты21492150Пакет [`turtledemo`](https://python-all.ru/3.8/library/turtle.html#module-turtledemo) включает набор демонстрационных скриптов. Эти скрипты можно запускать и просматривать с помощью поставляемого средства просмотра демонстраций следующим образом:21512152```python2153python -m turtledemo2154```21552156В качестве альтернативы вы можете запускать демонстрационные скрипты по отдельности. Например,21572158```python2159python -m turtledemo.bytedesign2160```21612162Каталог пакета [`turtledemo`](https://python-all.ru/3.8/library/turtle.html#module-turtledemo) содержит:21632164- Средство просмотра демонстраций `__main__.py`, которое можно использовать для просмотра исходного кода скриптов и одновременного их запуска.2165- Несколько скриптов, демонстрирующих различные возможности модуля [`turtle`](https://python-all.ru/3.8/library/turtle.html#module-turtle). Примеры доступны через меню Examples. Их также можно запускать отдельно.2166- Файл `turtle.cfg`, который служит примером того, как писать и использовать такие файлы.21672168Демонстрационные скрипты:21692170| Имя | Описание | Возможности |2171| --- | --- | --- |2172| bytedesign | сложный классический узор черепашьей графики | `tracer()`, delay, `update()` |2173| chaos | строит график динамики Ферхюльста, показывает, что компьютерные вычисления иногда могут давать результаты, противоречащие здравому смыслу | мировые координаты |2174| clock | аналоговые часы, показывающие время вашего компьютера | черепахи как стрелки часов, ontimer |2175| colormixer | эксперимент с r, g, b | `ondrag()` |2176| forest | 3 дерева обхода в ширину | рандомизация |2177| fractalcurves | Кривые Гильберта и Коха | рекурсия |2178| lindenmayer | этноматематика (индийские коламы) | L-система |2179| minimal\_hanoi | Ханойские башни | Прямоугольные черепахи как диски Ханоя (shape, shapesize) |2180| nim | игра в классический ним с тремя кучками палочек против компьютера. | черепашки как палочки нима, событийно-ориентированное управление (мышь, клавиатура) |2181| paint | супер-минималистичная программа для рисования | `onclick()` |2182| peace | элементарный | черепашка: внешний вид и анимация |2183| penrose | непериодическое замощение воздушными змеями и дротиками | `stamp()` |2184| planet\_and\_moon | симуляция гравитационной системы | составные фигуры, `Vec2D` |2185| round\_dance | танцующие черепашки, вращающиеся попарно в противоположных направлениях | составные фигуры, clone shapesize, tilt, get\_shapepoly, update |2186| sorting\_animate | визуальная демонстрация различных методов сортировки | простое выравнивание, рандомизация |2187| дерево | (графическое) дерево обхода в ширину (с использованием генераторов) | `clone()` |2188| two\_canvases | простой дизайн | черепашки на двух холстах |2189| wikipedia | узор из статьи в Википедии о черепашьей графике | `clone()`, `undo()` |2190| yinyang | ещё один элементарный пример | `circle()` |21912192Удачи!21932194## Изменения, начиная с Python 2.621952196- Методы `Turtle.tracer()`, `Turtle.window_width()` и `Turtle.window_height()` были удалены. Методы с такими именами и функциональностью теперь доступны только как методы `Screen`. Производные от них функции остаются доступными. (Фактически уже в Python 2.6 эти методы были просто дублированием соответствующих `TurtleScreen`/`Screen`.)2197- Метод `Turtle.fill()` был удалён. Поведение `begin_fill()` и `end_fill()` незначительно изменилось: теперь каждая операция заполнения должна завершаться вызовом `end_fill()`.2198- Добавлен метод `Turtle.filling()`. Он возвращает булево значение: `True`, если процесс заливки выполняется, `False` в противном случае. Это поведение соответствует вызову `fill()` без аргументов в Python 2.6.21992200## Изменения, начиная с Python 3.022012202- Методы `Turtle.shearfactor()`, `Turtle.shapetransform()` и `Turtle.get_shapepoly()` были добавлены. Таким образом, теперь доступен полный набор обычных линейных преобразований для изменения форм черепашек. `Turtle.tiltangle()` был расширен по функциональности: теперь его можно использовать для получения или установки угла наклона. `Turtle.settiltangle()` помечен как устаревший.2203- Метод `Screen.onkeypress()` добавлен как дополнение к `Screen.onkey()`, который фактически привязывает действия к событию отпускания клавиши. Соответственно, последний получил псевдоним: `Screen.onkeyrelease()`.2204- Добавлен метод `Screen.mainloop()`. Так что при работе только с объектами Screen и Turtle больше не нужно дополнительно импортировать `mainloop()`.2205- Добавлены два метода ввода: `Screen.textinput()` и `Screen.numinput()`. Они выводят диалоговые окна ввода и возвращают соответственно строки и числа.2206- Два примера скриптов `tdemo_nim.py` и `tdemo_round_dance.py` добавлены в каталог `Lib/turtledemo`.2207