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

turtle.md

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

1> **Источник:** https://python-all.ru/3.0/library/turtle.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `turtle` – Turtle graphics for Tk89## Введение1011Черепашья графика – популярный способ познакомить детей с программированием. Она была частью оригинального языка программирования Logo, разработанного Уолли Фойрцигом и Сеймуром Пейпертом в 1966 году.1213Представьте себе роботизированную черепаху, начинающую в точке (0, 0) на плоскости xy. Дайте ей команду `turtle.forward(15)`, и она переместится (на экране!) на 15 пикселей в направлении, куда она смотрит, рисуя линию по мере движения. Дайте ей команду `turtle.left(25)`, и она повернётся на месте на 25 градусов по часовой стрелке.1415Комбинируя эти и подобные команды, можно легко рисовать сложные фигуры и картинки.1617Модуль `turtle` представляет собой расширенную перереализацию одноимённого модуля из стандартной поставки Python до версии Python 2.5.1819Он старается сохранить достоинства старого модуля turtle и быть (почти) на 100% совместимым с ним. Это прежде всего означает, что начинающий программист может использовать все команды, классы и методы в интерактивном режиме, работая с модулем из IDLE, запущенного с ключом `-n`.2021Модуль turtle предоставляет примитивы черепашьей графики как в объектно-ориентированном, так и в процедурном стиле. Поскольку для вывода графики он использует `Tkinter`, требуется версия Python с поддержкой Tk.2223Объектно-ориентированный интерфейс использует, по сути, два + два класса:24251. Класс [`TurtleScreen`](https://python-all.ru/3.0/library/turtle.html#turtle.TurtleScreen) определяет графические окна как площадку для рисования черепашек. Его конструктор принимает `Tkinter.Canvas` или `ScrolledCanvas` в качестве аргумента. Его следует использовать, когда `turtle` применяется как часть какого-либо приложения.2627   Функция [`Screen()`](https://python-all.ru/3.0/library/turtle.html#turtle.Screen) возвращает объект-одиночку подкласса [`TurtleScreen`](https://python-all.ru/3.0/library/turtle.html#turtle.TurtleScreen). Эту функцию следует использовать, когда `turtle` применяется как самостоятельное средство для работы с графикой. Поскольку это объект-одиночка, наследование от его класса невозможно.2829   Все методы TurtleScreen/Screen также существуют в виде функций, то есть являются частью процедурно-ориентированного интерфейса.302. [`RawTurtle`](https://python-all.ru/3.0/library/turtle.html#turtle.RawTurtle) (псевдоним: [`RawPen`](https://python-all.ru/3.0/library/turtle.html#turtle.RawPen)) определяет объекты-черепахи, которые рисуют на [`TurtleScreen`](https://python-all.ru/3.0/library/turtle.html#turtle.TurtleScreen). Его конструктор принимает в качестве аргумента Canvas, ScrolledCanvas или TurtleScreen, так что объекты RawTurtle знают, где рисовать.3132   От RawTurtle наследуется подкласс [`Turtle`](https://python-all.ru/3.0/library/turtle.html#turtle.Turtle) (псевдоним: `Pen`), который рисует на экземпляре «the» [`Screen`](https://python-all.ru/3.0/library/turtle.html#turtle.Screen) – этот экземпляр создаётся автоматически, если его ещё нет.3334   Все методы RawTurtle/Turtle также существуют в виде функций, то есть как часть процедурно-ориентированного интерфейса.3536Процедурный интерфейс предоставляет функции, производные от методов классов [`Screen`](https://python-all.ru/3.0/library/turtle.html#turtle.Screen) и [`Turtle`](https://python-all.ru/3.0/library/turtle.html#turtle.Turtle). Они носят те же имена, что и соответствующие методы. Объект screen создаётся автоматически при вызове любой функции, производной от метода Screen. Безымянный объект turtle автоматически создаётся при вызове любой функции, производной от метода Turtle.3738Чтобы использовать несколько черепашек на одном экране, нужно прибегнуть к объектно-ориентированному интерфейсу.3940> **Примечание**41>42> В следующей документации приведён список аргументов для функций. Методы, конечно, имеют дополнительный первый аргумент *self*, который здесь опущен.4344## Обзор доступных методов Turtle и Screen4546### Методы черепахи4748**Движение черепахи**4950**Перемещение и рисование**5152[`forward()`](https://python-all.ru/3.0/library/turtle.html#turtle.forward)5354|5556[`fd()`](https://python-all.ru/3.0/library/turtle.html#turtle.fd)5758[`backward()`](https://python-all.ru/3.0/library/turtle.html#turtle.backward)5960|6162[`bk()`](https://python-all.ru/3.0/library/turtle.html#turtle.bk)6364|6566[`back()`](https://python-all.ru/3.0/library/turtle.html#turtle.back)6768[`right()`](https://python-all.ru/3.0/library/turtle.html#turtle.right)6970|7172[`rt()`](https://python-all.ru/3.0/library/turtle.html#turtle.rt)7374[`left()`](https://python-all.ru/3.0/library/turtle.html#turtle.left)7576|7778[`lt()`](https://python-all.ru/3.0/library/turtle.html#turtle.lt)7980[`goto()`](https://python-all.ru/3.0/library/turtle.html#turtle.goto)8182|8384[`setpos()`](https://python-all.ru/3.0/library/turtle.html#turtle.setpos)8586|8788[`setposition()`](https://python-all.ru/3.0/library/turtle.html#turtle.setposition)8990[`setx()`](https://python-all.ru/3.0/library/turtle.html#turtle.setx)9192[`sety()`](https://python-all.ru/3.0/library/turtle.html#turtle.sety)9394[`setheading()`](https://python-all.ru/3.0/library/turtle.html#turtle.setheading)9596|9798[`seth()`](https://python-all.ru/3.0/library/turtle.html#turtle.seth)99100[`home()`](https://python-all.ru/3.0/library/turtle.html#turtle.home)101102[`circle()`](https://python-all.ru/3.0/library/turtle.html#turtle.circle)103104[`dot()`](https://python-all.ru/3.0/library/turtle.html#turtle.dot)105106[`stamp()`](https://python-all.ru/3.0/library/turtle.html#turtle.stamp)107108[`clearstamp()`](https://python-all.ru/3.0/library/turtle.html#turtle.clearstamp)109110[`clearstamps()`](https://python-all.ru/3.0/library/turtle.html#turtle.clearstamps)111112[`undo()`](https://python-all.ru/3.0/library/turtle.html#turtle.undo)113114[`speed()`](https://python-all.ru/3.0/library/turtle.html#turtle.speed)115116**Состояние черепахи**117118[`position()`](https://python-all.ru/3.0/library/turtle.html#turtle.position)119120|121122[`pos()`](https://python-all.ru/3.0/library/turtle.html#turtle.pos)123124[`towards()`](https://python-all.ru/3.0/library/turtle.html#turtle.towards)125126[`xcor()`](https://python-all.ru/3.0/library/turtle.html#turtle.xcor)127128[`ycor()`](https://python-all.ru/3.0/library/turtle.html#turtle.ycor)129130[`heading()`](https://python-all.ru/3.0/library/turtle.html#turtle.heading)131132[`distance()`](https://python-all.ru/3.0/library/turtle.html#turtle.distance)133134**Настройка и измерение**135136[`degrees()`](https://python-all.ru/3.0/library/turtle.html#turtle.degrees)137138[`radians()`](https://python-all.ru/3.0/library/turtle.html#turtle.radians)139140**Управление пером**141142**Состояние рисования**143144[`pendown()`](https://python-all.ru/3.0/library/turtle.html#turtle.pendown)145146|147148[`pd()`](https://python-all.ru/3.0/library/turtle.html#turtle.pd)149150|151152[`down()`](https://python-all.ru/3.0/library/turtle.html#turtle.down)153154[`penup()`](https://python-all.ru/3.0/library/turtle.html#turtle.penup)155156|157158[`pu()`](https://python-all.ru/3.0/library/turtle.html#turtle.pu)159160|161162[`up()`](https://python-all.ru/3.0/library/turtle.html#turtle.up)163164[`pensize()`](https://python-all.ru/3.0/library/turtle.html#turtle.pensize)165166|167168[`width()`](https://python-all.ru/3.0/library/turtle.html#turtle.width)169170[`pen()`](https://python-all.ru/3.0/library/turtle.html#turtle.pen)171172[`isdown()`](https://python-all.ru/3.0/library/turtle.html#turtle.isdown)173174**Управление цветом**175176[`color()`](https://python-all.ru/3.0/library/turtle.html#turtle.color)177178[`pencolor()`](https://python-all.ru/3.0/library/turtle.html#turtle.pencolor)179180[`fillcolor()`](https://python-all.ru/3.0/library/turtle.html#turtle.fillcolor)181182**Заливка**183184[`filling()`](https://python-all.ru/3.0/library/turtle.html#turtle.filling)185186[`begin_fill()`](https://python-all.ru/3.0/library/turtle.html#turtle.begin_fill)187188[`end_fill()`](https://python-all.ru/3.0/library/turtle.html#turtle.end_fill)189190**Дополнительное управление рисованием**191192[`reset()`](https://python-all.ru/3.0/library/turtle.html#turtle.reset)193194[`clear()`](https://python-all.ru/3.0/library/turtle.html#turtle.clear)195196[`write()`](https://python-all.ru/3.0/library/turtle.html#turtle.write)197198**Состояние черепахи**199200**Видимость**201202[`showturtle()`](https://python-all.ru/3.0/library/turtle.html#turtle.showturtle)203204|205206[`st()`](https://python-all.ru/3.0/library/turtle.html#turtle.st)207208[`hideturtle()`](https://python-all.ru/3.0/library/turtle.html#turtle.hideturtle)209210|211212[`ht()`](https://python-all.ru/3.0/library/turtle.html#turtle.ht)213214[`isvisible()`](https://python-all.ru/3.0/library/turtle.html#turtle.isvisible)215216**Внешний вид**217218[`shape()`](https://python-all.ru/3.0/c-api/buffer.html#shape)219220[`resizemode()`](https://python-all.ru/3.0/library/turtle.html#turtle.resizemode)221222[`shapesize()`](https://python-all.ru/3.0/library/turtle.html#turtle.shapesize)223224|225226`turtlesize()`227228[`settiltangle()`](https://python-all.ru/3.0/library/turtle.html#turtle.settiltangle)229230[`tiltangle()`](https://python-all.ru/3.0/library/turtle.html#turtle.tiltangle)231232[`tilt()`](https://python-all.ru/3.0/library/turtle.html#turtle.tilt)233234**Использование событий**235236[`onclick()`](https://python-all.ru/3.0/library/turtle.html#turtle.onclick)237238[`onrelease()`](https://python-all.ru/3.0/library/turtle.html#turtle.onrelease)239240[`ondrag()`](https://python-all.ru/3.0/library/turtle.html#turtle.ondrag)241242**Специальные методы черепахи**243244[`begin_poly()`](https://python-all.ru/3.0/library/turtle.html#turtle.begin_poly)245246[`end_poly()`](https://python-all.ru/3.0/library/turtle.html#turtle.end_poly)247248[`get_poly()`](https://python-all.ru/3.0/library/turtle.html#turtle.get_poly)249250[`clone()`](https://python-all.ru/3.0/library/turtle.html#turtle.clone)251252[`getturtle()`](https://python-all.ru/3.0/library/turtle.html#turtle.getturtle)253254|255256`getpen()`257258[`getscreen()`](https://python-all.ru/3.0/library/turtle.html#turtle.getscreen)259260[`setundobuffer()`](https://python-all.ru/3.0/library/turtle.html#turtle.setundobuffer)261262[`undobufferentries()`](https://python-all.ru/3.0/library/turtle.html#turtle.undobufferentries)263264### Методы TurtleScreen/Screen265266**Управление окном**267268[`bgcolor()`](https://python-all.ru/3.0/library/turtle.html#turtle.bgcolor)269270[`bgpic()`](https://python-all.ru/3.0/library/turtle.html#turtle.bgpic)271272[`clear()`](https://python-all.ru/3.0/library/turtle.html#turtle.clear)273274|275276[`clearscreen()`](https://python-all.ru/3.0/library/turtle.html#turtle.clearscreen)277278[`reset()`](https://python-all.ru/3.0/library/turtle.html#turtle.reset)279280|281282[`resetscreen()`](https://python-all.ru/3.0/library/turtle.html#turtle.resetscreen)283284[`screensize()`](https://python-all.ru/3.0/library/turtle.html#turtle.screensize)285286[`setworldcoordinates()`](https://python-all.ru/3.0/library/turtle.html#turtle.setworldcoordinates)287288**Управление анимацией**289290[`delay()`](https://python-all.ru/3.0/library/turtle.html#turtle.delay)291292[`tracer()`](https://python-all.ru/3.0/library/turtle.html#turtle.tracer)293294[`update()`](https://python-all.ru/3.0/library/turtle.html#turtle.update)295296**Использование событий экрана**297298[`listen()`](https://python-all.ru/3.0/library/turtle.html#turtle.listen)299300[`onkey()`](https://python-all.ru/3.0/library/turtle.html#turtle.onkey)301302[`onclick()`](https://python-all.ru/3.0/library/turtle.html#turtle.onclick)303304|305306[`onscreenclick()`](https://python-all.ru/3.0/library/turtle.html#turtle.onscreenclick)307308[`ontimer()`](https://python-all.ru/3.0/library/turtle.html#turtle.ontimer)309310**Настройки и специальные методы**311312[`mode()`](https://python-all.ru/3.0/library/turtle.html#turtle.mode)313314[`colormode()`](https://python-all.ru/3.0/library/turtle.html#turtle.colormode)315316[`getcanvas()`](https://python-all.ru/3.0/library/turtle.html#turtle.getcanvas)317318[`getshapes()`](https://python-all.ru/3.0/library/turtle.html#turtle.getshapes)319320[`register_shape()`](https://python-all.ru/3.0/library/turtle.html#turtle.register_shape)321322|323324[`addshape()`](https://python-all.ru/3.0/library/turtle.html#turtle.addshape)325326[`turtles()`](https://python-all.ru/3.0/library/turtle.html#turtle.turtles)327328[`window_height()`](https://python-all.ru/3.0/library/turtle.html#turtle.window_height)329330[`window_width()`](https://python-all.ru/3.0/library/turtle.html#turtle.window_width)331332**Методы, специфичные для Screen**333334[`bye()`](https://python-all.ru/3.0/library/turtle.html#turtle.bye)335336[`exitonclick()`](https://python-all.ru/3.0/library/turtle.html#turtle.exitonclick)337338[`setup()`](https://python-all.ru/3.0/library/turtle.html#turtle.setup)339340[`title()`](https://python-all.ru/3.0/library/turtle.html#turtle.title)341342## Методы RawTurtle/Turtle и соответствующие функции343344Большинство примеров в этом разделе ссылаются на экземпляр Turtle с именем `turtle`.345346### Движение черепахи347348#### `[turtle.forward]turtle.forward(distance)`349350#### `turtle.fd(distance)`351352| Параметр: | *distance* – число (целое или с плавающей запятой) |353| --- | --- |354355Перемещает черепаху вперед на указанное *distance*, в направлении, в котором черепаха смотрит.356357```python358>>> turtle.position()359(0.00, 0.00)360>>> turtle.forward(25)361>>> turtle.position()362(25.00,0.00)363>>> turtle.forward(-75)364>>> turtle.position()365(-50.00,0.00)366```367368#### `[turtle.back]turtle.back(distance)`369370#### `turtle.bk(distance)`371372#### `turtle.backward(distance)`373374| Параметр: | *distance* – число |375| --- | --- |376377Перемещает черепаху назад на *расстояние*, противоположно направлению, в котором черепаха смотрит. Направление черепахи не меняется.378379```python380>>> turtle.position()381(0.00, 0.00)382>>> turtle.backward(30)383>>> turtle.position()384(-30.00, 0.00)385```386387#### `[turtle.right]turtle.right(angle)`388389#### `turtle.rt(angle)`390391| Параметр: | *angle* – число (целое или с плавающей запятой) |392| --- | --- |393394Поворачивает черепаху вправо на *angle* единиц. (По умолчанию единицы – градусы, но можно задать с помощью функций [`degrees()`](https://python-all.ru/3.0/library/turtle.html#turtle.degrees) и [`radians()`](https://python-all.ru/3.0/library/turtle.html#turtle.radians).) Ориентация угла зависит от режима черепахи, см. [`mode()`](https://python-all.ru/3.0/library/turtle.html#turtle.mode).395396```python397>>> turtle.heading()39822.0399>>> turtle.right(45)400>>> turtle.heading()401337.0402```403404#### `[turtle.left]turtle.left(angle)`405406#### `turtle.lt(angle)`407408| Параметр: | *angle* – число (целое или с плавающей запятой) |409| --- | --- |410411Поворачивает черепаху влево на *angle* единиц. (По умолчанию единицы – градусы, но можно задать с помощью функций [`degrees()`](https://python-all.ru/3.0/library/turtle.html#turtle.degrees) и [`radians()`](https://python-all.ru/3.0/library/turtle.html#turtle.radians).) Ориентация угла зависит от режима черепахи, см. [`mode()`](https://python-all.ru/3.0/library/turtle.html#turtle.mode).412413```python414>>> turtle.heading()41522.0416>>> turtle.left(45)417>>> turtle.heading()41867.0419```420421#### `[turtle.goto]turtle.goto(x, y=None)`422423#### `turtle.setpos(x, y=None)`424425#### `turtle.setposition(x, y=None)`426427| Параметры: | *x* – число или пара/вектор чисел *y* – число или `None` |428| --- | --- |429430Если *y* равен `None`, то *x* должен быть парой координат или [`Vec2D`](https://python-all.ru/3.0/library/turtle.html#turtle.Vec2D) (например, возвращаемым функцией [`pos()`](https://python-all.ru/3.0/library/turtle.html#turtle.pos)).431432Перемещает черепаху в абсолютную позицию. Если перо опущено, рисует линию. Направление черепахи не меняется.433434```python435>>> tp = turtle.pos()436>>> tp437(0.00, 0.00)438>>> turtle.setpos(60,30)439>>> turtle.pos()440(60.00,30.00)441>>> turtle.setpos((20,80))442>>> turtle.pos()443(20.00,80.00)444>>> turtle.setpos(tp)445>>> turtle.pos()446(0.00,0.00)447```448449#### `[turtle.setx]turtle.setx(x)`450451| Параметр: | *x* – число (целое или с плавающей запятой) |452| --- | --- |453454Устанавливает первую координату черепахи в *x*, вторая координата остается без изменений.455456```python457>>> turtle.position()458(0.00, 240.00)459>>> turtle.setx(10)460>>> turtle.position()461(10.00, 240.00)462```463464#### `[turtle.sety]turtle.sety(y)`465466| Параметр: | *y* – число (целое или с плавающей запятой) |467| --- | --- |468469Устанавливает вторую координату черепахи в *y*, первая координата остается без изменений.470471```python472>>> turtle.position()473(0.00, 40.00)474>>> turtle.sety(-10)475>>> turtle.position()476(0.00, -10.00)477```478479#### `[turtle.setheading]turtle.setheading(to_angle)`480481#### `turtle.seth(to_angle)`482483| Параметр: | *to\_angle* – число (целое или с плавающей запятой) |484| --- | --- |485486Устанавливает направление черепахи в *to\_angle*. Вот некоторые распространенные направления в градусах:487488| стандартный режим | режим Logo |489| --- | --- |490| 0 – восток | 0 – север |491| 90 – север | 90 – восток |492| 180 – запад | 180 – юг |493| 270 – юг | 270 – запад |494495```python496>>> turtle.setheading(90)497>>> turtle.heading()49890499```500501#### `[turtle.home]turtle.home()`502503Перемещает черепаху в начало координат – (0,0) – и устанавливает её направление в начальную ориентацию (которая зависит от режима, см.504505[`mode()`](https://python-all.ru/3.0/library/turtle.html#turtle.mode)506507).508509#### `[turtle.circle]turtle.circle(radius, extent=None, steps=None)`510511| Параметры: | *radius* – число *extent* – число (или `None`) *steps* – целое число (или `None`) |512| --- | --- |513514Рисует окружность с заданным *radius*. Центр находится на *radius* единиц левее черепахи; *extent* – угол – определяет, какая часть окружности рисуется. Если *extent* не указан, рисуется вся окружность. Если *extent* не является полной окружностью, одна из конечных точек дуги – это текущее положение пера. Дуга рисуется против часовой стрелки, если *radius* положительный, и по часовой стрелке в противном случае. В конце направление черепахи изменяется на величину *extent*.515516Поскольку окружность аппроксимируется вписанным правильным многоугольником, *steps* определяет количество используемых шагов. Если не указано, вычисляется автоматически. Может использоваться для рисования правильных многоугольников.517518```python519>>> turtle.circle(50)520>>> turtle.circle(120, 180)  # нарисовать полуокружность521```522523#### `[turtle.dot]turtle.dot(size=None, *color)`524525| Параметры: | *size* – целое число \>= 1 (если указано) *color* – строка цвета или кортеж числовых цветов |526| --- | --- |527528Рисует круглую точку диаметром *size*, используя *color*. Если *size* не указан, используется максимальное из pensize+4 и 2\*pensize.529530```python531>>> turtle.dot()532>>> turtle.fd(50); turtle.dot(20, "blue"); turtle.fd(50)533```534535#### `[turtle.stamp]turtle.stamp()`536537Отпечатывает копию формы черепашки на холсте в текущей позиции черепашки. Возвращает stamp\_id для этого отпечатка, который можно использовать для его удаления вызовом `clearstamp(stamp_id)`.538539```python540>>> turtle.color("blue")541>>> turtle.stamp()54213543>>> turtle.fd(50)544```545546#### `[turtle.clearstamp]turtle.clearstamp(stampid)`547548| Параметр: | *stampid* – целое число, должно быть возвращаемым значением предыдущего вызова [`stamp()`](https://python-all.ru/3.0/library/turtle.html#turtle.stamp) |549| --- | --- |550551Удаляет печать с заданным *stampid*.552553```python554>>> turtle.color("blue")555>>> astamp = turtle.stamp()556>>> turtle.fd(50)557>>> turtle.clearstamp(astamp)558```559560#### `[turtle.clearstamps]turtle.clearstamps(n=None)`561562| Параметр: | *n* – целое число (или `None`) |563| --- | --- |564565Удаляет все или первые/последние *n* отпечатков черепашки. Если *n* равно None, удаляет все отпечатки, если *n* \> 0, удаляет первые *n* отпечатков, если *n* \< 0, удаляет последние *n* отпечатков.566567```python568>>> for i in range(8):569...     turtle.stamp(); turtle.fd(30)570>>> turtle.clearstamps(2)571>>> turtle.clearstamps(-2)572>>> turtle.clearstamps()573```574575#### `[turtle.undo]turtle.undo()`576577Отменяет (повторно) последнее(ие) действие(я) черепашки. Количество доступных действий отмены определяется размером буфера отмены.578579```python580>>> for i in range(4):581...     turtle.fd(50); turtle.lt(80)582...583>>> for i in range(8):584...     turtle.undo()585```586587#### `[turtle.speed]turtle.speed(speed=None)`588589| Параметр: | *speed* – целое число в диапазоне 0..10 или speedstring (см. ниже). |590| --- | --- |591592Устанавливает скорость черепашки в целое значение от 0 до 10. Если аргумент не указан, возвращает текущую скорость.593594Если входное значение – число больше 10 или меньше 0.5, скорость устанавливается в 0. Speedstrings сопоставляются со значениями скорости следующим образом:595596- «самый быстрый»: 0597- «быстрый»: 10598- “обычная”: 6599- “медленная”: 3600- “самая медленная”: 1601602Скорости от 1 до 10 обеспечивают всё более быструю анимацию рисования линий и поворотов черепашки.603604Внимание: *speed* = 0 означает, что *никакой* анимации не происходит. forward/back заставляют черепашку прыгать, а left/right заставляют черепашку мгновенно поворачиваться.605606```python607>>> turtle.speed(3)608```609610### Состояние черепашки611612#### `[turtle.position]turtle.position()`613614#### `turtle.pos()`615616Возвращает текущее положение черепашки (x, y) (в виде вектора [`Vec2D`](https://python-all.ru/3.0/library/turtle.html#turtle.Vec2D)).617618```python619>>> turtle.pos()620(0.00, 240.00)621```622623#### `[turtle.towards]turtle.towards(x, y=None)`624625| Параметры: | *x* – число или пара/вектор чисел, или экземпляр черепашки *y* – число, если *x* – число, иначе `None` |626| --- | --- |627628Возвращает угол между линией от позиции черепахи до позиции, заданной с помощью (x, y), вектора или другой черепахи. Это зависит от начальной ориентации черепахи, которая зависит от режима – «standard»/«world» или «logo»).629630```python631>>> turtle.pos()632(10.00, 10.00)633>>> turtle.towards(0,0)634225.0635```636637#### `[turtle.xcor]turtle.xcor()`638639Возвращает x-координату черепашки.640641```python642>>> reset()643>>> turtle.left(60)644>>> turtle.forward(100)645>>> print turtle.xcor()64650.0647```648649#### `[turtle.ycor]turtle.ycor()`650651Возвращает y-координату черепашки.652653```python654>>> reset()655>>> turtle.left(60)656>>> turtle.forward(100)657>>> print turtle.ycor()65886.6025403784659```660661#### `[turtle.heading]turtle.heading()`662663Возвращает текущий курс черепашки (значение зависит от режима черепашки, см. [`mode()`](https://python-all.ru/3.0/library/turtle.html#turtle.mode)).664665```python666>>> turtle.left(67)667>>> turtle.heading()66867.0669```670671#### `[turtle.distance]turtle.distance(x, y=None)`672673| Параметры: | *x* – число или пара/вектор чисел, или экземпляр черепашки *y* – число, если *x* – число, иначе `None` |674| --- | --- |675676Возвращает расстояние от черепашки до точки (x,y), указанного вектора или указанной другой черепашки в единицах шага черепашки.677678```python679>>> turtle.pos()680(0.00, 0.00)681>>> turtle.distance(30,40)68250.0683>>> joe = Turtle()684>>> joe.forward(77)685>>> turtle.distance(joe)68677.0687```688689### Настройки измерения690691#### `[turtle.degrees]turtle.degrees(fullcircle=360.0)`692693| Параметр: | *fullcircle* – число |694| --- | --- |695696Устанавливает единицы измерения углов, то есть задаёт количество «градусов» в полном обороте. Значение по умолчанию – 360 градусов.697698```python699>>> turtle.left(90)700>>> turtle.heading()70190702>>> turtle.degrees(400.0)  # измерение угла в гонах703>>> turtle.heading()704100705```706707#### `[turtle.radians]turtle.radians()`708709Устанавливает единицы измерения углов в радианы. Эквивалентно `degrees(2*math.pi)`.710711```python712>>> turtle.heading()71390714>>> turtle.radians()715>>> turtle.heading()7161.5707963267948966717```718719### Управление пером720721#### Состояние рисования722723#### `[turtle.pendown]turtle.pendown()`724725#### `turtle.pd()`726727#### `turtle.down()`728729Опускает перо – рисование при движении.730731#### `[turtle.penup]turtle.penup()`732733#### `turtle.pu()`734735#### `turtle.up()`736737Поднимает перо – при движении не рисует.738739#### `[turtle.pensize]turtle.pensize(width=None)`740741#### `turtle.width(width=None)`742743| Параметр: | *width* – положительное число |744| --- | --- |745746Устанавливает толщину линии в *width* или возвращает её. Если для resizemode установлено «auto» и форма черепашки является многоугольником, этот многоугольник рисуется с такой же толщиной линии. Если аргумент не указан, возвращается текущая толщина пера.747748```python749>>> turtle.pensize()7501751>>> turtle.pensize(10)   # отсюда рисуются линии шириной 10752```753754#### `[turtle.pen]turtle.pen(pen=None, **pendict)`755756| Параметры: | *pen* – словарь, содержащий некоторые или все из перечисленных ниже ключей *pendict* – один или несколько именованных аргументов, использующих перечисленные ниже ключи |757| --- | --- |758759Возвращает или устанавливает атрибуты пера в виде «словаря пера» со следующими парами ключ/значение:760761- “отображается”: True/False762- “перо опущено”: True/False763- “цвет пера”: строка цвета или кортеж цвета764- “цвет заливки”: строка цвета или кортеж цвета765- “размер пера”: положительное число766- “скорость”: число от 0 до 10767- “режим изменения размера”: “auto” or “user” or “noresize”768- “коэффициент растяжения”: (положительное число, положительное число)769- «outline»: положительное число770- «tilt»: число771772Этот словарь можно использовать в качестве аргумента для последующего вызова [`pen()`](https://python-all.ru/3.0/library/turtle.html#turtle.pen), чтобы восстановить предыдущее состояние пера. Кроме того, одно или несколько таких свойств можно передать в виде именованных аргументов. Это позволяет задать сразу несколько свойств пера в одном операторе.773774```python775>>> turtle.pen(fillcolor="black", pencolor="red", pensize=10)776>>> turtle.pen()777{'pensize': 10, 'shown': True, 'resizemode': 'auto', 'outline': 1,778'pencolor': 'red', 'pendown': True, 'fillcolor': 'black',779'stretchfactor': (1,1), 'speed': 3}780>>> penstate=turtle.pen()781>>> turtle.color("yellow","")782>>> turtle.penup()783>>> turtle.pen()784{'pensize': 10, 'shown': True, 'resizemode': 'auto', 'outline': 1,785'pencolor': 'yellow', 'pendown': False, 'fillcolor': '',786'stretchfactor': (1,1), 'speed': 3}787>>> p.pen(penstate, fillcolor="green")788>>> p.pen()789{'pensize': 10, 'shown': True, 'resizemode': 'auto', 'outline': 1,790'pencolor': 'red', 'pendown': True, 'fillcolor': 'green',791'stretchfactor': (1,1), 'speed': 3}792```793794#### `[turtle.isdown]turtle.isdown()`795796Возвращает `True`, если перо опущено, и `False`, если поднято.797798```python799>>> turtle.penup()800>>> turtle.isdown()801False802>>> turtle.pendown()803>>> turtle.isdown()804True805```806807#### Управление цветом808809#### `[turtle.pencolor]turtle.pencolor(*args)`810811Возвращает или задаёт цвет пера.812813Допускаются четыре формата ввода:814815**`pencolor()`**816817Возвращает текущий цвет пера в виде строки спецификации цвета, возможно в шестнадцатеричном формате (см. пример). Может использоваться в качестве входных данных для другого вызова color/pencolor/fillcolor.818819**`pencolor(colorstring)`**820821Устанавливает цвет пера в822823*colorstring*824825– строку спецификации цвета Tk, например826827`"red"`828829,830831`"yellow"`832833или834835`"#33cc8c"`836837.838839**`pencolor((r, g, b))`**840841Устанавливает цвет пера в RGB-цвет, заданный кортежем (842843*r*844845,846847*g*848849,850851*b*852853). Значения854855*r*856857,858859*g*860861и862863*b*864865должны быть в диапазоне 0..colormode, где colormode равен либо 1.0, либо 255 (см.866867[`colormode()`](https://python-all.ru/3.0/library/turtle.html#turtle.colormode)868869).870871**`pencolor(r, g, b)`**872873> Задаёт цвет пера по цвету RGB, заданному874>875> *r*876>877> ,878>879> *g*880>881> и882>883> *b*884>885> . Каждое из значений886>887> *r*888>889> ,890>891> *g*892>893> и894>895> *b*896>897> должно быть в диапазоне 0..colormode.898899Если форма черепахи (turtleshape) является многоугольником, то контур этого многоугольника рисуется вновь заданным цветом пера.900901```python902>>> turtle.pencolor("brown")903>>> tup = (0.2, 0.8, 0.55)904>>> turtle.pencolor(tup)905>>> turtle.pencolor()906"#33cc8c"907```908909#### `[turtle.fillcolor]turtle.fillcolor(*args)`910911Возвращает или задаёт цвет заливки.912913Допускаются четыре формата ввода:914915**`fillcolor()`**916917Возвращает текущий цвет заливки в виде строки спецификации цвета, возможно в шестнадцатеричном формате (см. пример). Может использоваться в качестве входных данных для другого вызова color/pencolor/fillcolor.918919**`fillcolor(colorstring)`**920921Устанавливает цвет заливки в922923*colorstring*924925– строку спецификации цвета Tk, например926927`"red"`928929,930931`"yellow"`932933или934935`"#33cc8c"`936937.938939**`fillcolor((r, g, b))`**940941Устанавливает цвет заливки в RGB-цвет, заданный кортежем (942943*r*944945,946947*g*948949,950951*b*952953). Значения954955*r*956957,958959*g*960961и962963*b*964965должны быть в диапазоне 0..colormode, где colormode равен либо 1.0, либо 255 (см.966967[`colormode()`](https://python-all.ru/3.0/library/turtle.html#turtle.colormode)968969).970971**`fillcolor(r, g, b)`**972973> Задаёт цвет заливки по цвету RGB, заданному974>975> *r*976>977> ,978>979> *g*980>981> и982>983> *b*984>985> . Каждое из значений986>987> *r*988>989> ,990>991> *g*992>993> и994>995> *b*996>997> должно быть в диапазоне 0..colormode.998999Если форма черепахи (turtleshape) является многоугольником, то внутренняя область этого многоугольника закрашивается вновь заданным цветом заливки.10001001```python1002>>> turtle.fillcolor("violet")1003>>> col = turtle.pencolor()1004>>> turtle.fillcolor(col)1005>>> turtle.fillcolor(0, .5, 0)1006```10071008#### `[turtle.color]turtle.color(*args)`10091010Возвращает или задаёт цвет пера и цвет заливки.10111012Допускается несколько форматов ввода. Они используют от 0 до 3 аргументов следующим образом:10131014**`color()`**10151016Возвращает текущий цвет пера и текущий цвет заливки в виде пары строк спецификации цвета, как их возвращают10171018[`pencolor()`](https://python-all.ru/3.0/library/turtle.html#turtle.pencolor)10191020и10211022[`fillcolor()`](https://python-all.ru/3.0/library/turtle.html#turtle.fillcolor)10231024.10251026**`color(colorstring)`, `color((r,g,b))`, `color(r,g,b)`**10271028Входные данные как в10291030[`pencolor()`](https://python-all.ru/3.0/library/turtle.html#turtle.pencolor)10311032; устанавливает и fillcolor, и pencolor в указанное значение.10331034**`color(colorstring1, colorstring2)`, `color((r1,g1,b1), (r2,g2,b2))`**10351036> Эквивалентно1037>1038> `pencolor(colorstring1)`1039>1040> и1041>1042> `fillcolor(colorstring2)`1043>1044> и аналогично, если используется другой формат ввода.10451046Если форма черепахи – многоугольник, его контур и внутренняя область рисуются новыми установленными цветами.10471048```python1049>>> turtle.color("red", "green")1050>>> turtle.color()1051("red", "green")1052>>> colormode(255)1053>>> color((40, 80, 120), (160, 200, 240))1054>>> color()1055("#285078", "#a0c8f0")1056```10571058См. также: метод Screen [`colormode()`](https://python-all.ru/3.0/library/turtle.html#turtle.colormode).10591060#### Заливка10611062#### `[turtle.filling]turtle.filling()`10631064Возвращает состояние заливки (`True`, если заливка включена, иначе `False`).10651066```python1067>>> turtle.begin_fill()1068>>> if turtle.filling():1069...    turtle.pensize(5)1070else:1071...    turtle.pensize(3)1072```10731074#### `[turtle.begin_fill]turtle.begin_fill()`10751076Вызывается непосредственно перед рисованием фигуры, которую нужно залить.10771078```python1079>>> turtle.color("black", "red")1080>>> turtle.begin_fill()1081>>> turtle.circle(60)1082>>> turtle.end_fill()1083```10841085#### `[turtle.end_fill]turtle.end_fill()`10861087Заливает фигуру, нарисованную после последнего вызова10881089[`begin_fill()`](https://python-all.ru/3.0/library/turtle.html#turtle.begin_fill)10901091.10921093#### Дополнительное управление рисованием10941095#### `[turtle.reset]turtle.reset()`10961097Удаляет рисунки черепахи с экрана, перемещает черепаху в центр и сбрасывает переменные в значения по умолчанию.10981099```python1100>>> turtle.position()1101(0.00,-22.00)1102>>> turtle.heading()1103100.01104>>> turtle.reset()1105>>> turtle.position()1106(0.00,0.00)1107>>> turtle.heading()11080.01109```11101111#### `[turtle.clear]turtle.clear()`11121113Удаляет рисунки черепахи с экрана. Черепаха не перемещается. Состояние и положение черепахи, а также рисунки других черепах не затрагиваются.11141115#### `[turtle.write]turtle.write(arg, move=False, align="left", font=("Arial", 8, "normal"))`11161117| Параметры: | *arg* – объект, который будет записан на TurtleScreen. *move* – True/False *align* – одна из строк: «left», «center» или «right». *font* – тройка (имя\_шрифта, размер\_шрифта, тип\_шрифта) |1118| --- | --- |11191120Записывает текст – строковое представление *arg* – в текущей позиции черепашки в соответствии с *align* («left», «center» или «right») и заданным шрифтом. Если *move* равно True, перо перемещается в правый нижний угол текста. По умолчанию *move* равно False.11211122```python1123>>> turtle.write("Home = ", True, align="center")1124>>> turtle.write((0,0), True)1125```11261127### Состояние черепахи11281129#### Видимость11301131#### `[turtle.showturtle]turtle.showturtle()`11321133#### `turtle.st()`11341135Делает черепаху видимой.11361137```python1138>>> turtle.hideturtle()1139>>> turtle.showturtle()1140```11411142#### `[turtle.hideturtle]turtle.hideturtle()`11431144#### `turtle.ht()`11451146Делает черепаху невидимой. Рекомендуется делать это во время выполнения сложного рисунка, потому что скрытие черепахи заметно ускоряет рисование.11471148```python1149>>> turtle.hideturtle()1150```11511152#### `[turtle.isvisible]turtle.isvisible()`11531154Возвращает True, если черепашка видна, и False, если она скрыта.11551156```python1157>>> turtle.hideturtle()1158>>> print turtle.isvisible():1159False1160```11611162#### Внешний вид11631164#### `[turtle.shape]turtle.shape(name=None)`11651166| Параметр: | *name* – a string which is a valid shapename |1167| --- | --- |11681169Устанавливает форму черепахи по заданному *name*, а если имя не указано, возвращает имя текущей формы. Форма с *name* должна существовать в словаре форм TurtleScreen. Изначально доступны следующие многоугольные формы: “arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”. Чтобы узнать, как работать с формами, обратитесь к методу Screen [`register_shape()`](https://python-all.ru/3.0/library/turtle.html#turtle.register_shape).11701171```python1172>>> turtle.shape()1173"arrow"1174>>> turtle.shape("turtle")1175>>> turtle.shape()1176"turtle"1177```11781179#### `[turtle.resizemode]turtle.resizemode(rmode=None)`11801181| Параметр: | *rmode* – one of the strings “auto”, “user”, “noresize” |1182| --- | --- |11831184Устанавливает режим изменения размера в одно из значений: «авто», «пользователь», «без изменения размера». Если *rmode* не указан, возвращает текущий режим изменения размера. Разные режимы изменения размера имеют следующие эффекты:11851186- “auto”: adapts the appearance of the turtle corresponding to the value of pensize.1187- “user”: адаптирует внешний вид черепахи в соответствии со значениями stretchfactor и outlinewidth (outline), которые задаются с помощью [`shapesize()`](https://python-all.ru/3.0/library/turtle.html#turtle.shapesize).1188- «без изменения размера»: адаптация внешнего вида черепахи не производится.11891190resizemode(“user”) вызывается [`shapesize()`](https://python-all.ru/3.0/library/turtle.html#turtle.shapesize) при использовании с аргументами.11911192```python1193>>> turtle.resizemode("noresize")1194>>> turtle.resizemode()1195"noresize"1196```11971198#### `[turtle.shapesize]turtle.shapesize(stretch_wid=None, stretch_len=None, outline=None)`11991200| Параметры: | *stretch\_wid* – положительное число *stretch\_len* – положительное число *outline* – положительное число |1201| --- | --- |12021203Возвращает или задаёт атрибуты пера: коэффициенты растяжения по x/y и/или контур. Устанавливает режим изменения размера в “user”. Если и только если режим изменения размера установлен в “user”, черепаха будет отображаться растянутой в соответствии с коэффициентами растяжения: *stretch\_wid* – коэффициент растяжения перпендикулярно её ориентации, *stretch\_len* – коэффициент растяжения в направлении её ориентации, *outline* определяет ширину контура фигуры.12041205```python1206>>> turtle.resizemode("user")1207>>> turtle.shapesize(5, 5, 12)1208>>> turtle.shapesize(outline=8)1209```12101211#### `[turtle.tilt]turtle.tilt(angle)`12121213| Параметр: | *angle* – a number |1214| --- | --- |12151216Повернуть форму черепахи на *angle* от текущего угла наклона, но *не* изменять направление черепахи (направление движения).12171218```python1219>>> turtle.shape("circle")1220>>> turtle.shapesize(5,2)1221>>> turtle.tilt(30)1222>>> turtle.fd(50)1223>>> turtle.tilt(30)1224>>> turtle.fd(50)1225```12261227#### `[turtle.settiltangle]turtle.settiltangle(angle)`12281229| Параметр: | *angle* – a number |1230| --- | --- |12311232Поворачивает форму черепашки так, чтобы она указывала в направлении, заданном *angle*, независимо от текущего угла наклона. *Не* меняет курс черепашки (направление движения).12331234```python1235>>> turtle.shape("circle")1236>>> turtle.shapesize(5,2)1237>>> turtle.settiltangle(45)1238>>> stamp()1239>>> turtle.fd(50)1240>>> turtle.settiltangle(-45)1241>>> stamp()1242>>> turtle.fd(50)1243```12441245#### `[turtle.tiltangle]turtle.tiltangle()`12461247Возвращает текущий угол наклона, то есть угол между ориентацией формы черепахи и её курсом (направлением движения).12481249```python1250>>> turtle.shape("circle")1251>>> turtle.shapesize(5,2)1252>>> turtle.tilt(45)1253>>> turtle.tiltangle()1254451255```12561257### Использование событий12581259#### `[turtle.onclick]turtle.onclick(fun, btn=1, add=None)`12601261| Параметры: | *fun* – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте *num* – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши) *add*`True` или `False` – если `True`, будет добавлена новая привязка, в противном случае она заменит предыдущую привязку |1262| --- | --- |12631264Привязывает *fun* к событиям щелчка мыши на этой черепахе. Если *fun* равно `None`, существующие привязки удаляются. Пример для анонимной черепахи, т.е. процедурный способ:12651266```python1267>>> def turn(x, y):1268...     left(180)1269...1270>>> onclick(turn)  # Теперь щелчок по черепашке повернёт её.1271>>> onclick(None)  # привязка события будет удалена1272```12731274#### `[turtle.onrelease]turtle.onrelease(fun, btn=1, add=None)`12751276| Параметры: | *fun* – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте *num* – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши) *add*`True` или `False` – если `True`, будет добавлена новая привязка, в противном случае она заменит предыдущую привязку |1277| --- | --- |12781279Привязывает *fun* к событиям отпускания кнопки мыши на этой черепахе. Если *fun* равно `None`, существующие привязки удаляются.12801281```python1282>>> class MyTurtle(Turtle):1283...     def glow(self,x,y):1284...         self.fillcolor("red")1285...     def unglow(self,x,y):1286...         self.fillcolor("")1287...1288>>> turtle = MyTurtle()1289>>> turtle.onclick(turtle.glow)     # нажатие на черепашку меняет цвет заливки на красный,1290>>> turtle.onrelease(turtle.unglow) # отпускание делает его прозрачным.1291```12921293#### `[turtle.ondrag]turtle.ondrag(fun, btn=1, add=None)`12941295| Параметры: | *fun* – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте *num* – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши) *add*`True` или `False` – если `True`, будет добавлена новая привязка, в противном случае она заменит предыдущую привязку |1296| --- | --- |12971298Привязывает *fun* к событиям движения мыши на этой черепахе. Если *fun* равно `None`, существующие привязки удаляются.12991300Примечание: Каждая последовательность событий перемещения мыши на черепашке предваряется событием щелчка мыши на этой черепашке.13011302```python1303>>> turtle.ondrag(turtle.goto)1304# Subsequently, clicking and dragging the Turtle will move it across1305# the screen thereby producing handdrawings (if pen is down).1306```13071308### Специальные методы черепашки13091310#### `[turtle.begin_poly]turtle.begin_poly()`13111312Начинает запись вершин многоугольника. Текущая позиция черепашки является первой вершиной многоугольника.13131314#### `[turtle.end_poly]turtle.end_poly()`13151316Остановить запись вершин многоугольника. Текущая позиция черепашки – последняя вершина многоугольника. Она будет соединена с первой вершиной.13171318#### `[turtle.get_poly]turtle.get_poly()`13191320Возвращает последний записанный многоугольник.13211322```python1323>>> p = turtle.get_poly()1324>>> turtle.register_shape("myFavouriteShape", p)1325```13261327#### `[turtle.clone]turtle.clone()`13281329Создаёт и возвращает клон черепашки с теми же координатами, направлением и свойствами черепашки.13301331```python1332>>> mick = Turtle()1333>>> joe = mick.clone()1334```13351336#### `[turtle.getturtle]turtle.getturtle()`13371338Возвращает сам объект Turtle. Единственное разумное применение – как функция для возврата «анонимной черепашки»:13391340```python1341>>> pet = getturtle()1342>>> pet.fd(50)1343>>> pet1344<turtle.Turtle object at 0x01417350>1345>>> turtles()1346[<turtle.Turtle object at 0x01417350>]1347```13481349#### `[turtle.getscreen]turtle.getscreen()`13501351Возвращает объект [`TurtleScreen`](https://python-all.ru/3.0/library/turtle.html#turtle.TurtleScreen), на котором черепаха рисует. Методы TurtleScreen затем можно вызывать для этого объекта.13521353```python1354>>> ts = turtle.getscreen()1355>>> ts1356<turtle.Screen object at 0x01417710>1357>>> ts.bgcolor("pink")1358```13591360#### `[turtle.setundobuffer]turtle.setundobuffer(size)`13611362| Параметр: | *size* – целое число или `None` |1363| --- | --- |13641365Устанавливает или отключает буфер отмены. Если *size* – целое число, устанавливается пустой буфер отмены заданного размера. *size* задаёт максимальное количество действий черепахи, которые можно отменить с помощью метода/функции [`undo()`](https://python-all.ru/3.0/library/turtle.html#turtle.undo). Если *size* равен `None`, буфер отмены отключается.13661367```python1368>>> turtle.setundobuffer(42)1369```13701371#### `[turtle.undobufferentries]turtle.undobufferentries()`13721373Возвращает количество записей в буфере отмены.13741375```python1376>>> while undobufferentries():1377...     undo()1378```13791380### Экскурс об использовании составных фигур13811382Чтобы использовать составные фигуры черепахи, состоящие из нескольких многоугольников разного цвета, необходимо явно использовать вспомогательный класс [`Shape`](https://python-all.ru/3.0/library/turtle.html#turtle.Shape), как описано ниже:138313841. Создаёт пустой объект Shape типа «compound».13852. Добавьте в этот объект столько компонентов, сколько нужно, с помощью метода `addcomponent()`.13861387   Например:13881389   ```python1390   >>> s = Shape("compound")1391   >>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))1392   >>> s.addcomponent(poly1, "red", "blue")1393   >>> poly2 = ((0,0),(10,-5),(-10,-5))1394   >>> s.addcomponent(poly2, "blue", "red")1395   ```13963. Теперь добавьте Shape в список фигур экрана и используйте его:13971398   ```python1399   >>> register_shape("myshape", s)1400   >>> shape("myshape")1401   ```14021403> **Примечание**1404>1405> Класс [`Shape`](https://python-all.ru/3.0/library/turtle.html#turtle.Shape) используется внутри метода [`register_shape()`](https://python-all.ru/3.0/library/turtle.html#turtle.register_shape) разными способами. Разработчику приложения приходится иметь дело с классом Shape *только* при использовании составных фигур, как показано выше!14061407## Методы TurtleScreen/Screen и соответствующие функции14081409Большинство примеров в этом разделе ссылаются на экземпляр TurtleScreen с именем `screen`.14101411### Управление окном14121413#### `[turtle.bgcolor]turtle.bgcolor(*args)`14141415| Параметр: | *args* – строка цвета, три числа в диапазоне от 0 до colormode или кортеж из трёх таких чисел. |1416| --- | --- |14171418Устанавливает или возвращает цвет фона экрана TurtleScreen.14191420```python1421>>> screen.bgcolor("orange")1422>>> screen.bgcolor()1423"orange"1424>>> screen.bgcolor(0.5,0,0.5)1425>>> screen.bgcolor()1426"#800080"1427```14281429#### `[turtle.bgpic]turtle.bgpic(picname=None)`14301431| Параметр: | *picname* – строка, имя gif-файла, `"nopic"` или `None` |1432| --- | --- |14331434Устанавливает фоновое изображение или возвращает имя текущего фонового изображения. Если *picname* – имя файла, устанавливает соответствующее изображение в качестве фона. Если *picname*`"nopic"`, удаляет фоновое изображение, если оно есть. Если *picname*`None`, возвращает имя файла текущего фонового изображения.14351436```python1437>>> screen.bgpic()1438"nopic"1439>>> screen.bgpic("landscape.gif")1440>>> screen.bgpic()1441"landscape.gif"1442```14431444#### `turtle.clear()`14451446#### `turtle.clearscreen()`14471448Удаляет все рисунки и всех черепах с TurtleScreen. Сбрасывает теперь пустой TurtleScreen в исходное состояние: белый фон, без фонового изображения, без привязок событий и с включённой трассировкой.14491450> **Примечание**1451>1452> Этот метод TurtleScreen доступен как глобальная функция только под именем `clearscreen`. Глобальная функция `clear` – это другая функция, являющаяся производной от метода Turtle `clear`.14531454#### `turtle.reset()`14551456#### `turtle.resetscreen()`14571458Сбрасывает всех черепах на экране в исходное состояние.14591460> **Примечание**1461>1462> Этот метод TurtleScreen доступен как глобальная функция только под именем `resetscreen`. Глобальная функция `reset` – другая, полученная из метода Turtle `reset`.14631464#### `[turtle.screensize]turtle.screensize(canvwidth=None, canvheight=None, bg=None)`14651466| Параметры: | *canvwidth* – положительное целое, новая ширина холста в пикселях *canvheight* – положительное целое, новая высота холста в пикселях *bg* – строка цвета или кортеж цвета, новый цвет фона |1467| --- | --- |14681469Если аргументы не переданы, возвращает текущие (canvaswidth, canvasheight). В противном случае изменяет размер холста, на котором рисуют черепахи. Не изменяет окно рисования. Для просмотра скрытых частей холста используйте полосы прокрутки. С помощью этого метода можно сделать видимыми те части рисунка, которые раньше находились за пределами холста.14701471```python1472>>> turtle.screensize(2000,1500)1473# e.g. to search for an erroneously escaped turtle ;-)1474```14751476#### `[turtle.setworldcoordinates]turtle.setworldcoordinates(llx, lly, urx, ury)`14771478| Параметры: | *llx* – число, x-координата левого нижнего угла холста *lly* – число, y-координата левого нижнего угла холста *urx* – число, x-координата правого верхнего угла холста *ury* – число, y-координата правого верхнего угла холста |1479| --- | --- |14801481Настраивает пользовательскую систему координат и переключается в режим «world» при необходимости. Это выполняет `screen.reset()`. Если режим «world» уже активен, все рисунки перерисовываются в соответствии с новыми координатами.14821483**ВНИМАНИЕ**: в пользовательских системах координат углы могут отображаться искажёнными.14841485```python1486>>> screen.reset()1487>>> screen.setworldcoordinates(-50,-7.5,50,7.5)1488>>> for _ in range(72):1489...     left(10)1490...1491>>> for _ in range(8):1492...     left(45); fd(2)   # правильный восьмиугольник1493```14941495### Управление анимацией14961497#### `[turtle.delay]turtle.delay(delay=None)`14981499| Параметр: | *delay* – положительное целое |1500| --- | --- |15011502Устанавливает или возвращает задержку *delay* рисования в миллисекундах. (Это приблизительно интервал времени между двумя последовательными обновлениями холста.) Чем больше задержка рисования, тем медленнее анимация.15031504Необязательный аргумент:15051506```python1507>>> screen.delay(15)1508>>> screen.delay()1509151510```15111512#### `[turtle.tracer]turtle.tracer(n=None, delay=None)`15131514| Параметры: | *n* – неотрицательное целое число *delay* – неотрицательное целое число |1515| --- | --- |15161517Включает/выключает анимацию черепашки и устанавливает задержку для обновления рисунков. Если задан *n*, то реально выполняется только каждое n-е обычное обновление экрана. (Можно использовать для ускорения рисования сложной графики.) Второй аргумент задаёт значение задержки (см. [`delay()`](https://python-all.ru/3.0/library/turtle.html#turtle.delay)).15181519```python1520>>> screen.tracer(8, 25)1521>>> dist = 21522>>> for i in range(200):1523...     fd(dist)1524...     rt(90)1525...     dist += 21526```15271528#### `[turtle.update]turtle.update()`15291530Выполняет обновление TurtleScreen. Используется, когда tracer выключен.15311532См. также метод RawTurtle/Turtle [`speed()`](https://python-all.ru/3.0/library/turtle.html#turtle.speed).15331534### Использование событий экрана15351536#### `[turtle.listen]turtle.listen(xdummy=None, ydummy=None)`15371538Устанавливает фокус на TurtleScreen (для сбора событий клавиш). Фиктивные аргументы предусмотрены, чтобы можно было передавать15391540[`listen()`](https://python-all.ru/3.0/library/turtle.html#turtle.listen)15411542методу onclick.15431544#### `[turtle.onkey]turtle.onkey(fun, key)`15451546| Параметры: | *fun* – функция без аргументов или `None` *key* – строка: клавиша (например, “a”) или символ клавиши (например, “space”) |1547| --- | --- |15481549Привязывает *fun* к событию отпускания клавиши. Если *fun* равно `None`, привязки событий удаляются. Замечание: чтобы иметь возможность регистрировать события клавиш, TurtleScreen должен иметь фокус. (См. метод [`listen()`](https://python-all.ru/3.0/library/turtle.html#turtle.listen).)15501551```python1552>>> def f():1553...     fd(50)1554...     lt(60)1555...1556>>> screen.onkey(f, "Up")1557>>> screen.listen()1558```15591560#### `turtle.onclick(fun, btn=1, add=None)`15611562#### `turtle.onscreenclick(fun, btn=1, add=None)`15631564| Параметры: | *fun* – функция с двумя аргументами, которая будет вызвана с координатами точки щелчка на холсте *num* – номер кнопки мыши, по умолчанию 1 (левая кнопка мыши) *add*`True` или `False` – если `True`, будет добавлена новая привязка, в противном случае она заменит предыдущую привязку |1565| --- | --- |15661567Привязывает *fun* к событиям щелчка мыши на этом экране. Если *fun* равно `None`, существующие привязки удаляются.15681569Пример для экземпляра TurtleScreen с именем `screen` и экземпляра Turtle с именем turtle:15701571```python1572>>> screen.onclick(turtle.goto)1573# Subsequently clicking into the TurtleScreen will1574# make the turtle move to the clicked point.1575>>> screen.onclick(None)  # снова удалить привязку события1576```15771578> **Примечание**1579>1580> Этот метод TurtleScreen доступен как глобальная функция только под именем `onscreenclick`. Глобальная функция `onclick` – это другая функция, производная от метода Turtle `onclick`.15811582#### `[turtle.ontimer]turtle.ontimer(fun, t=0)`15831584| Параметры: | *fun* – функция без аргументов *t* – число \>= 0 |1585| --- | --- |15861587Устанавливает таймер, который вызывает *fun* через *t* миллисекунд.15881589```python1590>>> running = True1591>>> def f():1592        if running:1593            fd(50)1594            lt(60)1595            screen.ontimer(f, 250)1596>>> f()   ### заставляет черепаху двигаться по кругу1597>>> running = False1598```15991600### Настройки и специальные методы16011602#### `[turtle.mode]turtle.mode(mode=None)`16031604| Параметр: | *mode* – одна из строк “standard”, “logo” или “world” |1605| --- | --- |16061607Устанавливает режим черепахи (“standard”, “logo” или “world”) и выполняет сброс. Если режим не задан, возвращается текущий режим.16081609Режим “standard” совместим со старым `turtle`. Режим “logo” совместим с большинством графики логотипов Logo. Режим “world” использует заданные пользователем «мировые координаты». **Внимание**: в этом режиме углы искажаются, если `x/y` unit-ratio не равно 1.16101611| Режим | Начальное направление черепахи | положительные углы |1612| --- | --- | --- |1613| “standard” | вправо (восток) | против часовой стрелки |1614| “logo” | вверх (север) | по часовой стрелке |16151616```python1617>>> mode("logo")   # сбрасывает направление черепашки на север1618>>> mode()1619"logo"1620```16211622#### `[turtle.colormode]turtle.colormode(cmode=None)`16231624| Параметр: | *cmode* – одно из значений 1.0 или 255 |1625| --- | --- |16261627Возвращает цветовой режим или устанавливает его в значение 1.0 или 255. Впоследствии значения *r*, *g*, *b* цветовых троек должны находиться в диапазоне от 0 до *cmode*.16281629```python1630>>> screen.colormode()16311.01632>>> screen.colormode(255)1633>>> turtle.pencolor(240,160,80)1634```16351636#### `[turtle.getcanvas]turtle.getcanvas()`16371638Возвращает Canvas данного TurtleScreen. Полезно для тех, кто знает, что делать с Canvas из Tkinter.16391640```python1641>>> cv = screen.getcanvas()1642>>> cv1643<turtle.ScrolledCanvas instance at 0x010742D8>1644```16451646#### `[turtle.getshapes]turtle.getshapes()`16471648Возвращает список названий всех доступных в данный момент форм черепашки.16491650```python1651>>> screen.getshapes()1652["arrow", "blank", "circle", ..., "turtle"]1653```16541655#### `[turtle.register_shape]turtle.register_shape(name, shape=None)`16561657#### `turtle.addshape(name, shape=None)`16581659Эту функцию можно вызвать тремя различными способами:166016611. *name* – имя gif-файла, а *shape*`None`: установить соответствующую фигуру изображения.16621663   > **Примечание**1664   >1665   > Формы изображений *не* поворачиваются при повороте черепашки, поэтому они не отображают направление черепашки!16662. *name* – произвольная строка, а *shape* – кортеж пар координат: устанавливает соответствующую многоугольную форму.16673. *name* – произвольная строка, а shape – объект (составной) [`Shape`](https://python-all.ru/3.0/library/turtle.html#turtle.Shape): установить соответствующую составную фигуру.16681669Добавляет фигуру черепашки в список фигур TurtleScreen. Только так зарегистрированные фигуры можно использовать командой `shape(shapename)`.16701671```python1672>>> screen.register_shape("turtle.gif")1673>>> screen.register_shape("triangle", ((5,-3), (0,5), (-5,-3)))1674```16751676#### `[turtle.turtles]turtle.turtles()`16771678Возвращает список черепашек на экране.16791680```python1681>>> for turtle in screen.turtles()1682...     turtle.color("red")1683```16841685#### `[turtle.window_height]turtle.window_height()`16861687Возвращает высоту окна черепашки.16881689```python1690>>> screen.window_height()16914801692```16931694#### `[turtle.window_width]turtle.window_width()`16951696Возвращает ширину окна черепашки.16971698```python1699>>> screen.window_width()17006401701```17021703### Методы, специфичные для Screen, не наследуемые от TurtleScreen17041705#### `[turtle.bye]turtle.bye()`17061707Закрывает окно графики черепашки.17081709#### `[turtle.exitonclick]turtle.exitonclick()`17101711Привязать метод bye() к щелчкам мыши на экране.17121713Если значение “using\_IDLE” в словаре конфигурации равно `False` (значение по умолчанию), также запускается mainloop. Замечание: если используется IDLE с ключом `-n` (без подпроцесса), это значение должно быть установлено в `True` в `turtle.cfg`. В этом случае собственный mainloop IDLE также активен для клиентского скрипта.17141715#### `[turtle.setup]turtle.setup(width=_CFG[, "width"], height=_CFG[, "height"], startx=_CFG[, "leftright"], starty=_CFG[, "topbottom"])`17161717Устанавливает размер и положение главного окна. Значения аргументов по умолчанию хранятся в словаре конфигурации и могут быть изменены через файл `turtle.cfg`.17181719| Параметры: | *width* – если целое число, размер в пикселях; если число с плавающей запятой, доля экрана; по умолчанию – 50% экрана. *height* – если целое число, высота в пикселях; если число с плавающей запятой, доля от экрана; по умолчанию 75% экрана *startx* – если положительное, начальная позиция в пикселях от левого края экрана; если отрицательное – от правого края; если None – центрировать окно по горизонтали. *startx* – если положительное, начальная позиция в пикселях от верхнего края экрана, если отрицательное – от нижнего края, если None – расположить окно по центру по вертикали. |1720| --- | --- |17211722```python1723>>> screen.setup (width=200, height=200, startx=0, starty=0)1724# sets window to 200x200 pixels, in upper left of screen1725>>> screen.setup(width=.75, height=0.5, startx=None, starty=None)1726# sets window to 75% of screen by 50% of screen and centers1727```17281729#### `[turtle.title]turtle.title(titlestring)`17301731| Параметр: | *titlestring* – строка, отображаемая в заголовке окна черепашьей графики |1732| --- | --- |17331734Устанавливает заголовок окна черепашки равным *titlestring*.17351736```python1737>>> screen.title("Welcome to the turtle zoo!")1738```17391740## Публичные классы модуля `turtle`17411742#### `[turtle.RawTurtle]class turtle.RawTurtle(canvas)`17431744#### `class turtle.RawPen(canvas)`17451746| Параметр: | *canvas* – объект `Tkinter.Canvas`, объект `ScrolledCanvas` или [`TurtleScreen`](https://python-all.ru/3.0/library/turtle.html#turtle.TurtleScreen) Создаёт черепашку. Объект черепашки обладает всеми методами, описанными выше как «методы Turtle/RawTurtle». |1747| --- | --- |17481749#### `[turtle.Turtle]class turtle.Turtle`17501751Подкласс RawTurtle, имеет тот же интерфейс, но рисует на объекте17521753[`Screen`](https://python-all.ru/3.0/library/turtle.html#turtle.Screen)17541755по умолчанию, который создаётся автоматически при первом обращении.17561757#### `[turtle.TurtleScreen]class turtle.TurtleScreen(cv)`17581759| Параметр: | *cv* – экземпляр `Tkinter.Canvas` |1760| --- | --- |17611762Предоставляет ориентированные на экран методы, такие как `setbg()` и другие, которые описаны выше.17631764#### `[turtle.Screen]class turtle.Screen`17651766Подкласс TurtleScreen,17671768[*дополненный четырьмя методами*](https://python-all.ru/3.0/library/turtle.html#screenspecific)17691770.17711772#### `[turtle.ScrolledCavas]class turtle.ScrolledCavas(master)`17731774| Параметр: | *master* – виджет Tkinter, в который помещается ScrolledCanvas; например, Tkinter-холст с добавленными полосами прокрутки |1775| --- | --- |17761777Используется классом Screen, который, таким образом, автоматически предоставляет ScrolledCanvas в качестве поля для черепашек.17781779#### `[turtle.Shape]class turtle.Shape(type_, data)`17801781| Параметр: | *type\_* – одна из строк: «polygon», «image», «compound» |1782| --- | --- |17831784Структура данных для моделирования фигур. Пара `(type_, data)` должна соответствовать следующей спецификации:17851786| *type\_* | *данные* |1787| --- | --- |1788| «polygon» | кортеж многоугольника, т.е. кортеж пар координат |1789| «image» | изображение (в таком виде используется только внутри!) |1790| «compound» | `None` (составная фигура должна быть построена с помощью метода [`addcomponent()`](https://python-all.ru/3.0/library/turtle.html#turtle.Shape.addcomponent)) |17911792#### `[turtle.Shape.addcomponent]addcomponent(poly, fill, outline=None)`17931794| Параметры: | *poly* – многоугольник, т.е. кортеж пар чисел *fill* – цвет, которым будет заполнен *poly* *outline* – цвет контура многоугольника (если задан) |1795| --- | --- |17961797Пример:17981799```python1800>>> poly = ((0,0),(10,-5),(0,10),(-10,-5))1801>>> s = Shape("compound")1802>>> s.addcomponent(poly, "red", "blue")1803# .. add more components and then use register_shape()1804```18051806См. [*Экскурс об использовании составных фигур*](https://python-all.ru/3.0/library/turtle.html#compoundshapes).18071808#### `[turtle.Vec2D]class turtle.Vec2D(x, y)`18091810Двумерный векторный класс, используемый как вспомогательный класс для реализации graphics черепашки. Может быть полезен и для программ с графикой черепашки. Производный от tuple, так что вектор – это кортеж!18111812Предоставляет (для векторов *a*, *b* и числа *k*):18131814- `a + b` сложение векторов1815- `a - b` вычитание векторов1816- `a * b` внутреннее произведение1817- `k * a` и `a * k` умножение на скаляр1818- `abs(a)` абсолютное значение a1819- `a.rotate(angle)` поворот18201821## Справка и настройка18221823### Как пользоваться справкой18241825Публичные методы классов Screen и Turtle подробно документированы через docstrings. Их можно использовать как онлайн-справку через средства помощи Python:18261827- При использовании IDLE всплывающие подсказки показывают сигнатуры и первые строки docstrings для введённых вызовов функций/методов.1828- Вызов [`help()`](https://python-all.ru/3.0/library/functions.html#help) у методов или функций показывает docstrings:18291830  ```python1831  >>> help(Screen.bgcolor)1832  Help on method bgcolor in module turtle:18331834  bgcolor(self, *args) unbound turtle.Screen method1835      Set or return backgroundcolor of the TurtleScreen.18361837      Arguments (if given): a color string or three numbers1838      in the range 0..colormode or a 3-tuple of such numbers.18391840        >>> screen.bgcolor("orange")1841        >>> screen.bgcolor()1842        "orange"1843        >>> screen.bgcolor(0.5,0,0.5)1844        >>> screen.bgcolor()1845        "#800080"18461847  >>> help(Turtle.penup)1848  Help on method penup in module turtle:18491850  penup(self) unbound turtle.Turtle method1851      Pull the pen up -- no drawing when moving.18521853      Aliases: penup | pu | up18541855      No argument18561857      >>> turtle.penup()1858  ```1859- Docstrings функций, производных от методов, имеют изменённую форму:18601861  ```python1862  >>> help(bgcolor)1863  Help on function bgcolor in module turtle:18641865  bgcolor(*args)1866      Set or return backgroundcolor of the TurtleScreen.18671868      Arguments (if given): a color string or three numbers1869      in the range 0..colormode or a 3-tuple of such numbers.18701871      Example::18721873        >>> bgcolor("orange")1874        >>> bgcolor()1875        "orange"1876        >>> bgcolor(0.5,0,0.5)1877        >>> bgcolor()1878        "#800080"18791880  >>> help(penup)1881  Help on function penup in module turtle:18821883  penup()1884      Pull the pen up -- no drawing when moving.18851886      Aliases: penup | pu | up18871888      No argument18891890      Example:1891      >>> penup()1892  ```18931894Эти изменённые docstrings создаются автоматически вместе с определениями функций, которые производятся от методов во время импорта.18951896### Перевод docstrings на разные языки18971898Существует утилита для создания словаря, ключами которого являются имена методов, а значениями – docstrings публичных методов классов Screen и Turtle.18991900#### `[turtle.write_docstringdict]turtle.write_docstringdict(filename="turtle_docstringdict")`19011902| Параметр: | *filename* – строка, используемая как имя файла |1903| --- | --- |19041905Создаёт и записывает словарь docstring-ов в Python-скрипт с указанным именем файла. Эта функция должна вызываться явно (она не используется классами графики turtle). Словарь docstring-ов будет записан в Python-скрипт `filename.py`. Он предназначен служить шаблоном для перевода docstring-ов на разные языки.19061907Если вы (или ваши студенты) хотите использовать `turtle` с онлайн-справкой на вашем родном языке, необходимо перевести докстринги и сохранить полученный файл, например, `turtle_docstringdict_german.py`.19081909Если в файле `turtle.cfg` есть соответствующая запись, этот словарь будет считан при импорте и заменит исходные английские docstrings.19101911На момент написания этого текста есть словари строк документации на немецком и итальянском. (Запросы направляйте на [glingl@aon.at](https://python-all.ru/3.0/library/turtle.html).)19121913### Как настроить Screen и Turtles19141915Встроенная конфигурация по умолчанию имитирует внешний вид и поведение старого модуля turtle, чтобы сохранить максимально возможную совместимость с ним.19161917Если вы хотите использовать другую конфигурацию, которая лучше отражает возможности этого модуля или больше подходит для ваших нужд, например, для использования в классе, вы можете подготовить файл конфигурации `turtle.cfg`, который будет считан во время импорта и изменит конфигурацию в соответствии с настройками.19181919Встроенная конфигурация соответствует следующему turtle.cfg:19201921```python1922width = 0.51923height = 0.751924leftright = None1925topbottom = None1926canvwidth = 4001927canvheight = 3001928mode = standard1929colormode = 1.01930delay = 101931undobuffersize = 10001932shape = classic1933pencolor = black1934fillcolor = black1935resizemode = noresize1936visible = True1937language = english1938exampleturtle = turtle1939examplescreen = screen1940title = Python Turtle Graphics1941using_IDLE = False1942```19431944Краткое пояснение выбранных записей:19451946- Первые четыре строки соответствуют аргументам метода `Screen.setup()`.1947- Строки 5 и 6 соответствуют аргументам метода `Screen.screensize()`.1948- *shape* может быть любой из встроенных форм, например: arrow, turtle и т.д. Для получения дополнительной информации попробуйте `help(shape)`.1949- Если вы хотите не использовать цвет заливки (т.е. сделать черепаху прозрачной), нужно написать `fillcolor = ""` (но все непустые строки не должны содержать кавычек в cfg-файле).1950- Если вы хотите отражать состояние черепахи, нужно использовать `resizemode = auto`.1951- Если задать, например, `language = italian`, то словарь докстрингов `turtle_docstringdict_italian.py` будет загружен при импорте (если он присутствует в пути импорта, например, в той же директории, что и `turtle`.1952- Записи *exampleturtle* и *examplescreen* задают имена этих объектов, как они встречаются в строках документации. Преобразование строк документации методов в строки документации функций удалит эти имена из строк документации.1953- *using\_IDLE*: установите это в `True`, если вы регулярно работаете с IDLE и его ключом -n (“без подпроцесса”). Это предотвратит вход [`exitonclick()`](https://python-all.ru/3.0/library/turtle.html#turtle.exitonclick) в главный цикл.19541955Файл `turtle.cfg` может находиться в директории, где хранится `turtle`, и ещё один – в текущей рабочей директории. Последний будет переопределять настройки первого.19561957Директория `Demo/turtle` содержит файл `turtle.cfg`. Вы можете изучить его как пример и посмотреть на его эффекты при запуске демонстрационных скриптов (желательно не из demo-viewer).19581959## Демонстрационные скрипты19601961There is a set of demo scripts in the turtledemo directory located in the `Demo/turtle` directory in the source distribution.19621963Он содержит:19641965- набор из 15 демонстрационных скриптов, демонстрирующих различные возможности нового модуля `turtle`1966- средство просмотра демо `turtleDemo.py`, которое позволяет просматривать исходный код скриптов и одновременно запускать их. 14 примеров можно открыть через меню Examples; все их также можно запускать автономно.1967- Пример `turtledemo_two_canvases.py` демонстрирует одновременное использование двух холстов с модулем turtle. Поэтому его можно запускать только автономно.1968- В этой директории находится файл `turtle.cfg`, который также служит примером того, как писать и использовать такие файлы.19691970Демо-скрипты:19711972| Имя | Описание | Возможности |1973| --- | --- | --- |1974| bytedesign | сложный классический узор черепашьей графики | [`tracer()`](https://python-all.ru/3.0/library/turtle.html#turtle.tracer), задержка, [`update()`](https://python-all.ru/3.0/library/turtle.html#turtle.update) |1975| chaos | графики динамики Ферхюльста, доказывает, что нельзя доверять вычислениям компьютеров | мировые координаты |1976| clock | аналоговые часы, показывающие время вашего компьютера | черепахи как стрелки часов, ontimer |1977| colormixer | эксперимент с r, g, b | [`ondrag()`](https://python-all.ru/3.0/library/turtle.html#turtle.ondrag) |1978| fractalcurves | Кривые Гильберта и Коха | рекурсия |1979| lindenmayer | этноматематика (индийские коламы) | L-система |1980| minimal\_hanoi | Ханойские башни | Прямоугольные черепахи как диски Ханоя (shape, shapesize) |1981| paint | супер-минималистичная программа для рисования | [`onclick()`](https://python-all.ru/3.0/library/turtle.html#turtle.onclick) |1982| peace | элементарный | черепашка: внешний вид и анимация |1983| penrose | непериодическое замощение воздушными змеями и дротиками | [`stamp()`](https://python-all.ru/3.0/library/turtle.html#turtle.stamp) |1984| planet\_and\_moon | симуляция гравитационной системы | составные фигуры, [`Vec2D`](https://python-all.ru/3.0/library/turtle.html#turtle.Vec2D) |1985| дерево | (графическое) дерево обхода в ширину (с использованием генераторов) | [`clone()`](https://python-all.ru/3.0/library/turtle.html#turtle.clone) |1986| wikipedia | узор из статьи в Википедии о черепашьей графике | [`clone()`](https://python-all.ru/3.0/library/turtle.html#turtle.clone), [`undo()`](https://python-all.ru/3.0/library/turtle.html#turtle.undo) |1987| yingyang | ещё один элементарный пример | [`circle()`](https://python-all.ru/3.0/library/turtle.html#turtle.circle) |19881989Удачи!19901991## Изменения, начиная с Python 2.619921993- Методы `Turtle.tracer()`, `Turtle.window_width()` и `Turtle.window_height()` были убраны. Методы с такими названиями и функциональностью теперь доступны только как методы [`Screen`](https://python-all.ru/3.0/library/turtle.html#turtle.Screen). Функции, производные от этих, остаются доступными. (На самом деле уже в Python 2.6 эти методы были просто дубликатами соответствующих [`TurtleScreen`](https://python-all.ru/3.0/library/turtle.html#turtle.TurtleScreen)/[`Screen`](https://python-all.ru/3.0/library/turtle.html#turtle.Screen)-методов.)1994- Метод `Turtle.fill()` был убран. Поведение [`begin_fill()`](https://python-all.ru/3.0/library/turtle.html#turtle.begin_fill) и [`end_fill()`](https://python-all.ru/3.0/library/turtle.html#turtle.end_fill) немного изменилось: теперь каждый процесс заполнения должен завершаться вызовом `end_fill()`.1995- Добавлен метод `Turtle.filling()`. Он возвращает логическое значение: `True`, если процесс заливки выполняется, `False` в противном случае. Это поведение соответствует вызову `fill()` без аргументов в Python 2.6.1996