Rozdział 6 · Rysujemy fajne rzeczy za pomocą Turtle

Debugowanie Turtle

Grafika dodaje kilka nowych sposobów popełniania błędów — analizujmy je według schematu „symptom → powodować → korektę”

Grafika dodaje kilka nowych, Turtle specyficznych sposobów na zrobienie czegoś źle – Przeanalizujmy najczęstsze z nich według schematu „objawy → powodują → korekcję”

ObjawPrzyczynaPoprawka
Okno otwiera się i od razu zamykaProgram się zakończył, a Python zamknął okno razem z nimDodaj screen.exitonclick() (czekając na kliknięcie) lub turtle.done() na samym końcu programu
Żółw „patrzy nie tam”Pomyłki left()/right(), albo jeden z zwrotów w sekwencji zostaje zapomnianyPrzeczytaj program linijka po linijce i zapytaj każdą drużynę: „Czy to ruch czy obrót?”
Część obrazu nie pojawia się na ekranieZapomniane pendown() po penup() – żółw porusza się uczciwie, tylko nic nie rysujeSprawdź, czy długopis jest opuszczony przed każdym „prawdziwym”
Kształt jest narysowany, ale nie ma wypełnieniaZapomniane end_fill(), albo kontur nie zamknął się dokładnie tam, gdzie się zacząłUpewnij się, że ścieżka między begin_fill() oraz end_fill() wraca do punktu wyjścia
Część rysunku „znika” za krawędzią oknaWspółrzędne wyszły poza widoczny obszar — okno nie jest nieskończoneSprawdź screen.setup() i nie wychodź poza połowę szerokości/wysokości okna od środka
TclError lub okno w ogóle się nie otwiera na serwerze/Linux bez monitoraTurtle używa Tk, natywnego GUI, który potrzebuje prawdziwego (lub wirtualnego) wyświetlaczaUruchamiaj Turtle na komputerze z tradycyjnym komputerem stacjonarnym; automatyzacja bez monitora wymaga wirtualnego wyświetlacza, jak Xvfb – to już nie jest poziom podstawowy
Praktyka Turtle nie otwiera się bezpośrednio w przeglądarce na tej stronieŚrodowisko przeglądarkowe Python (Pyodide) nie potrafi otwierać natywnych okien Tk- — to ograniczenie techniczne, a nie błąd w Twoim kodzie)Takie praktyki są oznaczone jako „wymagane Python lokalne”
Dlaczego nie Turtle uruchomić bezpośrednio w Twojej przeglądarce na tej stronie
Zwykły Python (CPython) rysuje Turtle przez Tk — bibliotekę natywnych okien systemu operacyjnego. Przeglądarka Python, na której działają interaktywne ćwiczenia tego kursu, w ogóle nie ma dostępu do natywnych okien — dlatego ćwiczenia Turtle są oznaczone jako lokalne od samego początku rozdziału, a nie dlatego, że coś nie działa.

Przewiduj przed startem

Podobnie jak w przypadku liczb w rozdziale 5, najlepszym nawykiem jest przewidywanie kursu i przybliżanie współrzędnych Żółwie do startu, a nie później. Jeśli przewidywanie nie zgadza się z rzeczywistością — albo znalazłeś błąd, albo nie rozumiesz dokładnie zespołu. W obu przypadkach warto to przeanalizować.

Podstawowa praktyka
Przewiduj przebieg

Żółw stoi na (0, 0), kurs 0°. Wykonano polecenia: left(90), right(45). Jaki jest końcowy kurs? Sprawdź siebie, wykonując to w prawdziwym oknie Turtle.

★★ Zadanie samodzielne
Znajdź błąd

W programie, który rysuje kwadrat, po trzecim obrotie otrzymujesz pięciokąt, a nie kwadrat. Ile razy para forward()/right(90) powtarza się w kodzie? Ile powinno ich być?

Praktyka: debugowanie Turtle
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Otwórz praktykę →