Debugowanie for
Będziemy teraz debugować instrukcję for
. Dzięki temu zobaczysz odrobinę inne właściwości niż przy prostym skrypcie bez instrukcji.
Umieść breakpoint
przy ostatniej linii skryptu print(f"Found cat: {cat}")
(przypominamy: wystarczy kliknąć po prawej stronie numeru linii kodu).
Uruchom debugowanie pliku cat_for.py. Najszybciej to zrobisz klikając prawym klawiszem myszki w oknie edycji kodu i wybierając opcję Debug.
Pierwszy przebieg
Program zostanie wstrzymany na ostatniej linii z kodem:
W zakładce Variables pojawiła się zmienna cat
z naszej pętli for
. Zobaczmy co zmienna cat
przechowuje.
Jako, że jest to pierwszy przebieg tej pętli, to ma ona pierwszą pobraną wartość z listy, czyli Kitty.
Kontynuujmy debugowanie, aby zobaczyć co stanie się dalej. Użyj skrótu klawiszowego F8 lub kliknij na ikonę odpowiadająca opcji Step Over. Poznaliśmy ją w poprzedniej sekcji:
Drugi przebieg
Co się stało?
Nasz debugger przeskoczył do poprzedniej linii😲. Widzimy również poprzednią wartość zmiennej wypisana na szaro obok instrukcji for
:
Wywołajmy ponownie akcję Step Over (F8).
Widzimy teraz nową wartość dla zmiennej cat
. Czyli już wiemy jak spokojnie przechodzić po naszej pętli i strukturze for.
Trzeci przebieg
Wiemy, że kolejne użycie opcji Step Over przeniesie nas do linii z deklaracją for
.
A co gdybyśmy chcielibyśmy od razu przejść do kolejnej wartości w pętli?
W poprzedniej sekcji poznaliśmy sprytny skrót na bezpośredni przeskok do naszego breakpoint:
Opcję Resume Program:
Skorzystajmy z niej (jej skrót klawiszowy to F9):
No i jesteśmy od razu w odpowiednim miejscu😁 Zerknijmy jeszcze na zakładkę Console, aby sprawdzić co do teraz zostało wypisane przez nasz program:
Starting program Preparing data Initialising cats list Returning cats Found cat: Kitty Found cat: Pussy
Wszystko się zgadza. Ostatni kot nie został wypisany, gdyż nasz program właśnie tam został wstrzymany.
Podsumowanie
Możemy teraz zakończyć debugowanie pętli. Wiemy już jak debugger przechodzi przez jej kolejne iteracje (przebiegi). Dodatkowo zbadaliśmy kilka ciekawych właściwości kodu za pomocą debuggera.
Przejdźmy do kolejnej konstrukcji i jej analizy w trybie Debug.