Глава 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_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_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, без установки