Wykonanie kodu Python krok po kroku: wcięcia, pętle i funkcje
Python wykonuje program wiersz po wierszu, a o tym, co należy do pętli albo funkcji, decydują wcięcia. To narzędzie zatrzymuje się po każdej instrukcji i pokazuje wartości zmiennych oraz tekst wypisany przez print. Typu zmiennej się nie deklaruje: Python nadaje go po wartości, a panel zmiennych pokazuje go obok nazwy.
Pojedynczy ukośnik zawsze daje liczbę z ułamkiem, więc 4 / 2 to 2.0. Podwójny ukośnik dzieli z zaokrągleniem w dół: 7 // 2 to 3, a -7 // 2 to -4. Znak procentu oddaje resztę z dzielenia. Te trzy operatory rozstrzygają większość zadań z obliczeniami.
Funkcja range(1, 5) daje liczby 1, 2, 3 i 4, czyli bez ostatniej. Listy numeruje się od zera, a indeks ujemny liczy od końca, więc lista[-1] to ostatni element. Przypisanie jednej listy do drugiej zmiennej nie tworzy kopii: obie nazwy wskazują tę samą listę i zmiana przez jedną jest widoczna przez drugą.
Funkcja, która wywołuje samą siebie, jest rekurencyjna. Krok po kroku widać każde wejście do funkcji z mniejszym argumentem i każdy powrót z wynikiem. Silnik obsługuje zmienne, operatory, warunki, pętle, funkcje, listy, krotki, słowniki, napisy oraz moduły math i random. Nie ma jeszcze klas i nie czyta z klawiatury, więc zamiast input() wpisuje się wartość wprost.
Przykład: co oblicza funkcja licz(5)
1
Kod: funkcja licz(n) dla n większego od 1 oddaje n * licz(n - 1), a w przeciwnym razie oddaje 1.
2
Wywołanie licz(5) czeka na wynik licz(4), to na licz(3) i tak dalej aż do licz(1), które oddaje 1.
3
Powroty idą w odwrotnej kolejności: 2 razy 1 to 2, 3 razy 2 to 6, 4 razy 6 to 24.
4
Ostatni powrót to 5 razy 24, czyli 120. Funkcja oblicza silnię, a print wypisuje 120.
Najczęstsze pytania
Pojedynczy ukośnik to zwykłe dzielenie i zawsze daje liczbę z ułamkiem, na przykład 7 / 2 to 3.5. Podwójny ukośnik dzieli z zaokrągleniem w dół, więc 7 // 2 to 3.
Bo druga liczba jest granicą, której zakres już nie obejmuje. range(1, 5) daje 1, 2, 3 i 4, a range(5) daje liczby od 0 do 4.
Przejdź ją krok po kroku. Panel pokazuje kolejne wywołania z coraz mniejszym argumentem, a potem powroty z wynikami, które składają się na odpowiedź.
Nie. Narzędzie nie czyta z klawiatury, bo każdy przebieg ma dawać ten sam wynik. Zamiast x = int(input()) wpisz wartość wprost, na przykład x = 5.