Глава 7 · Глубокое погружение в Turtle

clear(), reset() и home()

Три похожие по звучанию команды — но каждая стирает и двигает что-то своё.

Три похожих по звучанию команды — но с разным эффектом. Разберём их одну за другой, используя ОДИН и тот же сценарий: нарисовать квадрат, отойти в сторону, затем очистить.

КомандаСтирает рисунок?Двигает черепашку?
clear()данет — черепашка остаётся, где была
reset()дада — возвращает в (0, 0) с курсом по умолчанию
home()нетда — возвращает в (0, 0), но НЕ трогает рисунок

clear() — стирает рисунок, не двигает черепашку

clear_effekt.py
import turtle

screen = turtle.Screen()
screen.setup(width=340, height=260)
artist = turtle.Turtle()
artist.pencolor("#5B24F9")

for _ in range(4):
    artist.forward(100)
    artist.right(90)
artist.penup()
artist.goto(120, 80)
artist.clear()
# clear() стирает рисунок, но НЕ трогает позицию черепашки —
# точка появится там же, куда мы её только что переместили
artist.dot(14, "#DB2777")

screen.exitonclick()
Результат выполнения
Пустой экран с розовой точкой в правом верхнем углу и чёрным курсором черепашки рядом с ней — квадрат стёрт, но позиция черепашки осталась прежней
После clear() рисунок исчез, но точка появилась там же, куда мы переместились ДО очистки — позиция не сбросилась
clear_effekt_kod.py
for _ in range(4):
    artist.forward(100)
    artist.right(90)

artist.penup()
artist.goto(120, 80)
artist.clear()
# clear() стирает рисунок, но НЕ трогает позицию черепашки —
# точка появится там же, куда мы её только что переместили
artist.dot(14, "#DB2777")

reset() — стирает рисунок И возвращает домой

reset_effekt.py
import turtle

screen = turtle.Screen()
screen.setup(width=340, height=260)
artist = turtle.Turtle()
artist.pencolor("#5B24F9")

for _ in range(4):
    artist.forward(100)
    artist.right(90)
artist.penup()
artist.goto(120, 80)
artist.reset()
# reset() стирает рисунок И возвращает черепашку в (0, 0) —
# точка появится в начале координат, а не там, где мы были
artist.dot(14, "#DB2777")

screen.exitonclick()
Результат выполнения
Пустой экран с розовой точкой точно в центре — квадрат стёрт, и черепашка вернулась в начало координат
После reset() рисунок исчез И черепашка вернулась в (0, 0) — точка появилась в центре
reset_effekt_kod.py
for _ in range(4):
    artist.forward(100)
    artist.right(90)

artist.penup()
artist.goto(120, 80)
artist.reset()
# reset() стирает рисунок И возвращает черепашку в (0, 0) —
# точка появится в начале координат, а не там, где мы были
artist.dot(14, "#DB2777")

home() — только движение, рисунок остаётся

Мы уже встречали home() в главе 6 — она перемещает черепашку в (0, 0) с курсом по умолчанию, но, в отличие от reset(), НЕ стирает то, что уже нарисовано:

home_kod.py
artist.forward(100)
artist.left(45)
artist.forward(60)
artist.home()   # рисунок остаётся на месте, домой возвращается только черепашка
Как выбрать нужную команду
Нужно стереть рисунок, но остаться на месте? clear(). Нужно полностью начать заново — и рисунок, и позицию? reset(). Нужно просто вернуться в центр, ничего не стирая? home().
Практика: clear, reset, home
Модуль turtle открывает нативное окно Python — выполните локально в VS Code, PyCharm или Jupyter
Практика выполняется локально
Открыть практику →
Практика: предскажите эффект clear/reset/home (без Turtle)
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →