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.
| Komenda | Usuwa rysunek? | Czy to porusza żółwia?" |
|---|---|---|
clear() | Tak | nie – żółw pozostaje tam, gdzie był |
reset() | Tak | Tak – Zwroty do (0, 0) przy wskaźniku niewypłacalności |
home() | nie | tak – 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
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
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
Praktyka: Przewiduj efekt clear/reset/home (bez Turtle)
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji