Как ускорить функцию «черепахи» в python и остановить ее замерзание в конце
Я написал программу черепахи в python, но есть две проблемы.
- Это слишком медленно для больших чисел, мне было интересно, как я могу ускорить черепаху.
- Он зависает после завершения и при нажатии, говорит «не отвечает»
Кстати: я на версии 3.2!
3 ответа
- Установите turtle.speed, чтобы ускорить выполнение.
- Используйте функцию turtle.mainloop() для работы без обновления экрана.
- Отключить обновление экрана с помощью turtle.tracer(0, 0) , затем в конце do turtle.update()
Python черепаха идет очень медленно, потому что обновление экрана выполняется после каждой модификации черепахи.
Вы можете отключить обновление экрана до тех пор, пока все работы не будут выполнены, а затем нарисуйте экран, он устранит миллисекундные задержки, поскольку экран яростно пытается обновить экран при каждом изменении черепахи.
Например:
Этот код делает тысячи черепах в случайных местах и отображает изображение примерно через 200 миллисекунд.
Графика turtle черепашка в питон
В этом уроке мы разберём графику в питон Python с помощью модуля Turtle черепашка. Turtle это модуль для Питон, позволяющий создавать графические объекты, риснуки в специальном окне. Модуль Turtle можно использовать для создания игр на Питоне.
Чтобы начать работу с модулем, нужно ввести объект Turtle()
t = Turtle()
Далее нужно ввести окно для графических объектов в Питон, в котором мы будем проводить все действия. Чтобы задать окно нужного размера в модуле turtle используется команда t.screen.setup(x, y) , где x и y – ширина и высота окна в пикселях. В этом уроке мы введём окно размером 800 × 800 пикселей.
t.screen.setup(800, 800)
Чтобы программа с модулем turtle на Python работала корректно, в самом конце программы всегда нужно прописывать две команды.
t.screen.exitonclick()
t.screen.mainloop()
С помощью команды t.screen.exitonclick() программа на Python реагирует на нажатие кнопки мыши после исполнения программы. Если пользователь нажмёт на левую кнопку мыши, пока курсор находится в окне для графики модуля turtle, то окно закроется. t.screen.mainloop() останавливает выполнение программы.
Запустив программу, вы увидите окно для графики с «черепашкой» по центру.
Начало координат в окне для графики модуля turtle находится в центре окна. Положительное направление оси X определяется слева направо, положительное направление оси Y определяется снизу вверх, чем больше X , тем правее черепашка, чем больше Y , тем выше черепашка.
Рисунки на экране появляются с помощью перемещения «черепашки» в окне для графики модуля turtle, черепашка рисует линию
Чтобы черепашка в окне для графики модуля turtle в Питоне двигалась вперёд, используется команда t.fd(x) , где x – количество пикселей, на которое сдвигается черепашка. Для движения назад используется команда t.bk(x) . Для передвижения черепашки в заданую точку использовать координаты t.goto(x, y) , где x и y – координаты точки, в которую должна переместиться черепашка.
Пример программы на python рисование линии с помощью черепашки
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
t.fd(200)
t.screen.exitonclick()
t.screen.mainloop()
При движении черепашка из модуля turtle в Питоне рисует линию на своей траектории. Чтобы черепашка двигалась без отображения линии, нужно использовать команду t.up() . Чтобы черепашка опять рисовала линию по своей траектории, используйте команду t.down() .
Пример. Черепашка рисует пунктирную линию.
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
for i in range(20):
t.fd(8)
t.up()
t.fd(8)
t.down()
t.screen.exitonclick()
t.screen.mainloop()

В модуле turtle в Python черепашка может рисовать не только прямые линии. Черепашку можно поворачивать, используя команды t.left(x) (поворачивает черепашку влево) и t.right(x) (поворот вправо), где x – угол поворота в градусах.
Пример. Черепашка рисует прямоугольник.
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
def rectangle(w, h):
for i in range(2):
t.left(90)
t.fd(h)
t.left(90)
t.fd(w)
rectangle(320, 200)
t.screen.exitonclick()
t.screen.mainloop()
Для поворота черепашки в Питоне в модуле turtle в определённую сторону используется команда модуля turtle t.setheading(x) , где x – угол поворота в градусах относительно начального положения черепашки при запуске программы. Если вы введёте в эту команду значение параметра 90 , то черепашка повернётся вверх, 180 – повернётся налево, 270 – повернётся вниз, 360 или 0 – повернётся направо.
С помощью черепашки в модуле turtle можно рисовать окружности. Для этого используется команда t.circle(r, ϕ) , где r – радиус круга, ϕ – часть окружности, которую мы рисуем, в градусах. При значении ϕ в 180 градусов черепашка в Питоне нарисует полуокружность, при 360 градусах нарисует полную окружность.
Пример программы на Python в которой с помощью черепашки рисуется квадрат и вписанная в него окружность
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
def sq_cr(side):
for i in range(4):
t.left(90)
t.fd(side)
t.bk(side / 2)
t.circle(side / 2, 360)
t.left(180)
t.circle(side / 2, 360)
sq_cr(250)
t.screen.exitonclick()
t.screen.mainloop()
Модуль turtle в Питоне позволяет рисовать точки. Для этого используется команда t.dot(r, color) , где r – радиус точки в пикселях, color – цвет, которым будет рисоваться точка.
Пример. Программа рисует круг с заданным количеством точек на нём. У точек и у круга можно изменять радиус.
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
def circ(d, r, rBig):
for i in range(d):
t.circle(rBig, 360 / d)
t.dot(r, "red")
t.up()
t.goto(350, 0)
t.setheading(90)
t.down()
circ(45, 10, 350)
t.screen.exitonclick()
t.screen.mainloop()
В модуле turtle в Python есть возможность рисовать закрашенные фигуры. Для закрашивания фигуры в модуле turtle используется команда t.begin_fill() . Все нарисованные фигуры будут заливаться цветом черепашки. Если вы хотите поставить другой цвет заливки, но оставить тот же цвет черепашки, пропишите команду t.fillcolor("цвет") , в кавычках пишется цвет, которым нужно заливать фигуры. Чтобы черепашка перестала заливать фигуры, нужно написать t.end_fill() .
Пример. Программа рисует волны, закрашивается только верхняя часть этих волн.
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
t.up()
t.goto(-450, 0)
t.down()
t.setheading(270)
for i in range(5):
t.circle(50, 180)
t.begin_fill()
t.circle(-50, 180)
t.end_fill()
t.screen.exitonclick()
t.screen.mainloop() 
В окне для графики модуля turtle Питон возможно рисовать текст. Для отображения текста в модуле turtle используется команда t.write()
t.write(text, move, align, font = (fontname, fontsize, fontstyle))
В параметр text команды t.write() пишется текст, который будет отображаться в окне для графики turtle Python. Текст пишется в кавычках.
Параметр move принимает только логические значения ( True , False ), этот параметр отвечает за то, появится ли анимация черепашки, после отображения текста. В анимации черепашка подчёркивает написанный текст.
move = True
move = False
align принимает значения "left" , "right" , "center" , этот параметр отвечает за положение текста относительно черепашки. Все значения пишутся в кавычках. Все варианты параметра align показаны на картинках ниже с параметром move = False . Для сравнения посмотрите на положение черепашки относительно текста в каждом варианте.
align = “left”
align = “right”
align = ”center”
Параметр font модуля turtle в Питоне принимает значения fontname , fontsize , fontstyle . В параметре fontname задается название шрифта в кавычках, fontsize отвечает за размер шрифта, fontstyle отвечает за стиль текста. Стиль текста пишется в кавычках. Параметр fontstyle имеет значения "normal" для обычного текста, "bold" полужирного текста, "italic" курсивного текста, "bold italic" полужирного курсивного текста.
В модуле turtle в Питоне можно изменять саму черепашку, её размер и цвет.
Чтобы изменить форму черепашки, используйте команду t.shape("") , в кавычках указывается форма черепашки в кавычках. В модуле turtle существуют такие формы черепашки, как "arrow" , "circle" , "square" , "triangle" , "turtle" , "classic" . Например, если вы хотите черепашку в форме квадрата, напишите команду t.shape(“square”) .
Размер черепашки можно изменить с помощью команды t.shapesize(n) , где n – размер черепашки.
Если вы хотите, чтобы черепашка не показывалась на экране, используйте команду t.hideturtle() . Чтобы черепашка опять показывалась, используйте команду t.showturtle() .
Черепашка в модуле turtle в Питоне может оставлять след. Для этого используйте t.stamp() . После выполнения этой команды в окне для графики в месте, на котором была черепашка, останется рисунок этой черепашки.
Пример программы на python в которой черепашка оставляет след синего цвета, затем рисует дугу.
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
t.shape("turtle")
t.color("blue")
t.stamp()
t.color("black")
t.up()
t.fd(50)
t.down()
t.circle(200, 70)
t.screen.exitonclick()
t.screen.mainloop()
Ширину линии, рисуемой черепашкой из модуля turtle в Python, можно изменить. Для этого используется команда t.pensize(n) , n – ширина линии. По умолчанию ширина линии равна 1 .
Ниже показано сравнение линий с шириной 1 и шириной 5 .

Если с помощью модуля turtle в Питоне вы создали большой рисунок, то черепашка будет рисовать его слишком долго. Чтобы ускорить черепашку, используйте команду t.speed(n) , n – скорость черепашки. n должно быть целым числом больше или равным нулю. Ноль – самая большая скорость, доступная для использования.
Менять можно не только черепашку из модуля turtle и линию, но и некоторые свойства окна для графики в Python.
Чтобы изменить цвет фона окна для графики, используется команда t.screen.bgcolor("") , в кавычках пишется цвет заднего фона.
Пример. Задаём оранжевый цвет заднего фона.
from turtle import *
t = Turtle()
t.screen.setup(800, 800)
t.screen.bgcolor("orange")
t.screen.exitonclick()
t.screen.mainloop()
Чтобы очистить окно от всего, что было нарисовано черепашкой, используйте команду t.clear() . Команда t.reset() не только очищает экран от рисунков, но и перемещает черепашку в центр.
Вернуться к содержанию
Следующая тема Работа с файлами в питон
Changing Python Turtle Speed with speed() Function
When working with the turtle module in Python, to change the speed of a turtle, you can use the Python turtle speed() function.
The turtle module in Python allows us to create graphics easily in our Python code.
When working with our turtle, sometimes it makes sense to want to change the speed of the turtle.
We can change the speed of our turtles with the turtle speed() function.
The turtle speed() function takes in an integer between 0 and 10, with 0 being instantaneous drawing, 1 being the slowest movement and 10 being the fastest movement.
Below are some examples of how to use the speed() function to change the speed of a turtle in Python.
Changing the Speed of a Turtle While Drawing
You can change the speed of a turtle while drawing a shape in Python easily. You can either speed up a turtle or slow down a turtle depending on what you would like.
In a loop, we just need to change the speed using the index of the loop.
Below is the Python code for creating a spiral with after each loop, we speed up the turtle, and the output of the spiral with the turtle module.

Hopefully this article has been useful for you to learn how to use the speed() function to change the speed of a turtle in Python.
Other Articles You'll Also Like:
- 1. Using Python to Print Variable Type
- 2. Get Month Name from Date in Python
- 3. Using Python to Append Character to String Variable
- 4. Truncate String in Python with String Slicing
- 5. Sort by Two Keys in Python
- 6. Using Python to Iterate Over Two Lists
- 7. Get Difference Between datetime Variables in Python
- 8. Python asin – Find Arcsine and Inverse Sine of Number Using math.asin()
- 9. pandas tail – Return Last n Rows from DataFrame
- 10. Get Day of Week from Datetime in pandas DataFrame
About The Programming Expert

The Programming Expert is a compilation of a programmer’s findings in the world of software development, website creation, and automation of processes.
Programming allows us to create amazing applications which make our work more efficient, repeatable and accurate.
At the end of the day, we want to be able to just push a button and let the code do it’s magic.
Как ускорить функцию «черепахи» Python и остановить ее зависание в конце
Я написал программу черепахи на питоне, но есть две проблемы.
- Это идет слишком медленно для больших чисел, мне было интересно, как я могу ускорить черепаху.
- Он зависает после завершения и при нажатии говорит «не отвечает».
Это мой код на данный момент:
Кстати: я на версии 3.2!
3 ответы
- Поставьте turtle.speed() в fastest .
- Использовать turtle.mainloop() функциональность для работы без обновления экрана.
- Отключить обновление экрана с помощью turtle.tracer(0, 0) затем в конце сделать turtle.update()
ответ дан 24 мар ’19, в 05:03
Если вы работаете с более новой версией черепахи, объект черепахи не имеет атрибута трассировки. Вместо этого вы должны установить атрибут tracer для объекта Screen. — Хенрик Соммерланд
Какова максимальная скорость, при которой анимация остается видимой? — Дэниел Спрингер
Черепаха Python работает очень медленно, потому что обновление экрана выполняется после каждой модификации черепахи.
Вы можете отключить обновление экрана до тех пор, пока вся работа не будет выполнена, а затем закрасить экран, это устранит задержки в миллисекундах, поскольку экран яростно пытается обновить экран после каждого изменения черепахи.
Например:
Этот код создает тысячу черепах в случайных местах и отображает картинку примерно за 200 миллисекунд.
Если бы вы не отключили обновление экрана с помощью turtle.tracer(0, 0) команда, это заняло бы несколько минут, поскольку она пытается обновить экран 3000 раз.
Создан 19 июля ’15, 18:07

Для справки, медленная черепаха — это существующая проблема. Даже при максимальной скорости черепахе может понадобиться довольно много времени на такие вещи, как фракталы. Ник Оделл переделал черепаху для увеличения скорости здесь: Скрыть окно черепахи?
ответ дан 24 мая ’17, 21:05
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками python graphics draw turtle-graphics or задайте свой вопрос.