Rozdział 7 · Głębokie zanurzenie w Turtle

clear(), reset() i home()

Trzy polecenia brzmiące podobnie, ale każde wymazuje i przesuwa coś innego.

Trzy polecenia brzmiące podobnie, ale z różnymi efektami. Rozłóżmy je na części jedno po drugim, Używając TEGO SAMEGO scenariusza: narysuj pole, odsuń się, potem usuń z pola.

KomendaUsuwa rysunek?Czy to porusza żółwia?"
clear()Taknie – żółw pozostaje tam, gdzie był
reset()TakTak – Zwroty do (0, 0) przy wskaźniku niewypłacalności
home()nietak – wraca do (0, 0), ale NIE dotyka rysunku

clear() usuwa rysunek, nie porusza żółwia

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() usuwa rysunek, ale NIE dotyka pozycji żółwia —
# Punkt pojawi się w tym samym miejscu, gdzie go właśnie przesunęliśmy
artist.dot(14, "#DB2777")

screen.exitonclick()
Rezultat
Pusty ekran z różową kropką w prawym górnym rogu i czarnym kursorem żółwia obok niej — kwadrat został wymazany, ale pozycja żółwia pozostała ta sama
Po clear() rysunek zniknął, ale czubek pojawił się w tym samym miejscu, gdzie się przesunęliśmy PRZED czyszczeniem – pozycja się nie resetowała
clear_effekt_kod.py
for _ in range(4):
    artist.forward(100)
    artist.right(90)

artist.penup()
artist.goto(120, 80)
artist.clear()
# clear() usuwa rysunek, ale NIE dotyka pozycji żółwia —
# Punkt pojawi się w tym samym miejscu, gdzie go właśnie przesunęliśmy
artist.dot(14, "#DB2777")

reset() — wymazuje rysunek I wraca do domu

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() usuwa wzór I przywraca żółwia do (0, 0) —
# punkt pojawi się w miejscu początkowym, a nie tam, gdzie byliśmy
artist.dot(14, "#DB2777")

screen.exitonclick()
Rezultat
Pusty ekran z różową kropką dokładnie na środku — kwadrat zostaje wymazany, a żółw wraca do punktu początkowego
Po reset() wzór zniknął. A żółw wrócił do (0, 0) — kropka pojawiła się na środku
reset_effekt_kod.py
for _ in range(4):
    artist.forward(100)
    artist.right(90)

artist.penup()
artist.goto(120, 80)
artist.reset()
#reset() usuwa wzór I przywraca żółwia do (0, 0) —
# punkt pojawi się w miejscu początkowym, a nie tam, gdzie byliśmy
artist.dot(14, "#DB2777")

home() — tylko ruch, rysunek pozostaje

Już się spotkaliśmy home() w rozdziale 6 to się przesuwa żółw w (0, 0) z domyślnym wskaźnikiem, ale w przeciwieństwie do reset(), NIE usuwa tego, co już zostało narysowane:

home_kod.py
artist.forward(100)
artist.left(45)
artist.forward(60)
artist.home()   # rysunek pozostaje na miejscu, tylko żółw wraca do domu
Jak wybrać odpowiedni zespół
Trzeba wymazać rysunek, ale pozostać na miejscu? clear(). Czy musisz zaczynać od nowa – zarówno od rysunku, jak i od pozycji? reset(). Wystarczy po prostu wrócić do środka, nic nie wymazując? home().
Praktyka: clear, reset, home
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →
Praktyka: Przewiduj efekt clear/reset/home (bez Turtle)
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →