Ускорение рисунка turtle

Я делаю фрактал Леви на Python с помощью turtle. У меня получается но рисуется очень медленно. Мне надо завтра сдать эту работу но не хочется, чтобы учитель долго стоял и смотрел как она рисуется.

Вот код:

import turtle

def draw(n):
    if n == 0:
        turtle.forward(10)
    
    else:
        turtle.left(45)
        draw(n - 1)
        turtle.right(45)
        turtle.right(45)
        draw(n - 1)
        turtle.left(45)

draw(20)

Ответы (3 шт):

Автор решения: ПИТОНИСТ версия-3-8

Чтобы ускорить черепашку, используйте команду turtle.speed (n), n– скорость черепашки. n должно быть целым числом больше или равным нулю. Ноль – самая большая скорость, доступная для использования. То есть, вот ваша программа:

import turtle
def draw(n):
    if n == 0:
        turtle.forward(10)
    
    else:
        turtle.left(45)
        draw(n - 1)
        turtle.right(45)
        turtle.right(45)
        draw(n - 1)
        turtle.left(45)
turtle.speed(0)
draw(20)

Быстрее нельзя, это и так самая быстрая черепашка

начало ответа взято отсюда

→ Ссылка
Автор решения: Pavel M

В таких случаях я вызываю в начале кода функцию tracer() из модуля turtle, а когда нужно отрисовать, вызываю функцию update() из того же модуля. В примере отрисовка производится всего 100 раз на более чем 200тыс движений

turtle.tracer(0)
t = turtle.Turtle()
for i in range(1000):
    t.goto(0, 0)
    t.lt(1.001)
    for j in range(100):
        t.fd(i)
        t.color('white') if i % 2 else t.color('black')
        t.lt(173)
    if not i % 10:
        turtle.update()
→ Ссылка
Автор решения: Stanislav Volodarskiy

Самый быстрый способ рисовать – вызвать turtle.tracer(n=0, delay=0) перед началом рисования.

Первый параметр turtle.tracer задаёт интервал между обновлениями экрана. По-умолчанию экран обновляется после каждого движения черепашки, если задать 10, то обновления будут через десять движений, то есть в десять раз реже. 0 – специальное значение, оно выключает обновления вообще. Этого нет в документации, но есть в исходном коде.

Второй параметр задаёт паузу между обновлениями. Чем пауза меньше, тем быстрее работает программа.

Хотя всё работает быстро, но я ничего не вижу. Программа запущена из командной строки. Во время рисования ничего не рисуется ради скорости. Когда всё нарисовалось, программа завершается и закрывает окно. Чтобы этого не было, я вызываю turtle.done, который не даёт программе завершиться. Если вы запускаете код в другом окружении, этот вызов вам может не понадобиться.

...
turtle.tracer(n=0, delay=0)
draw(20)
turtle.done()

На моём железе этот скрипт покажет окончательный результат примерно через сто секунд. Ждать в неизвестности скучно, поэтому разрешим черепашке обновлять изображение, но не часто.

...
turtle.tracer(n=10000, delay=0)
draw(20)
turtle.done()
→ Ссылка