Testerka do nauki podstaw programowania
W tym e‑materiale przedstawimy działanie wykorzystywanego w e‑materiałach narzędzia, które nazywamy testerką. Znajdziesz w nim również ćwiczenia, do których możesz wrócić, by przetestować swoją wiedzę dotyczącą języka Python.
Interaktywna treść merytorycznaInteraktywna treść merytoryczna
MultimediumMultimedium
Zestaw ćwiczeń interaktywnychZestaw ćwiczeń interaktywnych
SłownikSłownik
BibliografiaBibliografia
Wprowadzenie do programowania w języku PythonWprowadzenie do programowania w języku Python
Zapiszesz kod w języku Python.
Przedstawisz najważniejsze informacje dotyczące zmiennychzmiennych.
Przećwiczysz podstawowe konstrukcje języka Python.
Zapoznasz się z funkcjami testerki.
Rozwiążesz ćwiczenie interaktywne, wykorzystując testerkę.
Niektóre z ćwiczeń w e‑materiałach będą wymagać od ciebie wykorzystania narzędzia, które nazywamy testerką.
Może ona przywodzić na myśl interpreter języka Python zainstalowany na twoim komputerze. Czym się zatem różni? Testerki przystosowane są do poprowadzenia cię przez procesy rozwiązywania konkretnych problemów – twoim zadaniem będzie wykonywanie kolejnych poleceń. Jeśli twój program nie będzie do końca poprawny, testerka wyświetli odpowiedni komunikat błędu. Wskazówki i podpowiedzi przeprowadzą cię przez kolejne etapy pisania kodu.
Przejdźmy zatem do powtórzenia wiadomości o kodzie w języku Python. Wykorzystuje on instrukcje, które mówią programowi, co ma zrobić.
Przykładem instrukcji może być instrukcja przypisania, np. a = 2 + 3. Możemy również korzystać z instrukcji pętli, warunkowych czy funkcji. Instrukcje są wykonywane sekwencyjnie (kolejno), od góry do dołu. Każdą instrukcję zapisujemy w nowej linii.
W programie możemy umieszczać również komentarz, czyli tekst, który nie jest wykonywany przez program. Komentarz może być dodatkowym wyjaśnieniem, zawierać informacje dla innych osób pracujących nad kodem itp.
Komentarz zapisujemy, poprzedzając go znakiem kratki (#).
Zapoznaj się z wyglądem okna testerki. Jej główne sekcje zostały podpisane na poniższym zrzucie.

W e‑materiałach testerki uzupełnione są odpowiednimi poleceniami oraz kodem. Na dole z lewej strony znajduje się przycisk, po wciśnięciu którego zostaną wyświetlone wskazówki oraz odpowiedź.

Przy każdym ćwiczeniu znajdziesz instrukcję, w której wskazane będzie, co należy zrobić. Przykładowe polecenia:
przypisz zmiennej wskazany ciąg znaków;
zdefiniuj funkcję z dwoma parametrami;
wypisz na ekranie komunikat;
zaimplementuj pętlę;
zapisz instrukcję warunkową.
Do przechowywania danych w programie używamy zmiennych. Aby utworzyć zmienną, wystarczy nadać jej nazwę i przypisać wartość za pomocą operatora =. To, jakie zmienne należy utworzyć, zawsze określone jest w instrukcji ćwiczenia. Jeśli twój kod uruchomi się i wyświetli poprawny wynik, ale zmienne będą miały nadane błędne nazwy, testerka wyświetli komunikat błędu.
Wiemy już, że funkcja to fragment kodu, który wykonuje określone zadanie. Możemy stworzyć funkcję, używając słowa kluczowego def i nadając jej nazwę oraz wypełniając kodem.
W treści instrukcji zawsze podana jest nazwa funkcji, jaką należy stworzyć. Dlatego choć poniższy kod jest poprawny, testerka zwraca błąd, ponieważ funkcja powinna nosić nazwę nwd(), a nie Oblicz().

Dopiero zmiana nazwy funkcji pozwoli przejść do kolejnego etapu ćwiczenia.

Zwróć uwagę na słowo kluczowe pass. Z tą instrukcją nie jest związana żadna operacja i oznacza, że w programie nic się nie ma wydarzyć. Użyta jako wypełniacz pozwala na poprawną interpretację, gdy wymagana jest obecność jakiejś instrukcji, ale nie chcemy wykonywać żadnego kodu.
Wspomnieliśmy już o funkcjach zdefiniowanych przez użytkownika. W testerkach możemy również wykorzystywać funkcje wbudowane, czyli takie, które są dostępne w standardowej bibliotece języka Python i nie wymagają importowania i instalacji.
Przykładami funkcji wbudowanych są funkcje print(), len(), round() czy sum().
Ich błędna konstrukcja powodować może błąd interpretera (o czym w późniejszych przykładach), jednak ich całkowity brak, lub błędny zapis np. z niepoprawnym tekstem zwróci wskazówkę, o jaką funkcję należy uzupełnić kod.
W przypadku poważniejszych braków w kodzie, np. całych bloków instrukcji, podpowiedzi będą bardziej ogólne, aby naprowadzić cię na właściwe rozwiązanie.

Interpreter również zwraca komunikaty o błędach składniowych. W ich wyniku działanie programu zostaje przerwane, a w miejscu podpowiedzi, pojawia się odpowiedni komunikat. Przyjęło się, że komunikaty te są zapisane po angielsku, ale ponieważ dopiero zaczynasz naukę programowania, w testerkach pojawiają się one również w języku polskim.
Najczęstsze grupy błędów zgłaszane przez interpreter:
SyntaxError- błąd składniowy; błąd występuje, gdy kod nie jest zgodny z regułami języka Python. Na przykład, jeśli zapomnimy o dwukropku po wyrażeniu logicznym w instrukcji warunkowej czy pętli lub nie umieścimy znaku#przed komentarzem.Przykład 5R5ypsif03v917
Widok testerki z błędem interpretera.Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.IndentationError- inny rodzaj błędu składniowego, który występuje, gdy kod w języku Python nie jest poprawnie wyrównany. Wcięcia określają, które linie kodu należą do tego samego bloku, na przykład funkcji, pętli, instrukcji warunkowej lub klasy.Przykład 6RHyxXlWMMdNTO
Widok testerki z błędem interpretera.Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.NameError- błąd nazwy; błąd występuje, gdy próbujemy użyć nazwy zmiennej lub funkcji, która nie została zdefiniowana lub zaimportowana.Przykład 7R1ctmf2aEF50g
Widok testerki z błędem interpretera.Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.ValueError- błąd wartości; błąd występuje, gdy próbujemy wykonać operację na niepoprawnych wartościach lub typach danych, na przykład, jeśli próbujemy przekształcić ciąg znakowy na liczbę (np.liczba = int('123a')) lub jeśli odwołamy się do wartości, która nie znajduje się w liście.Przykład 8R1PFK7OoNtWEU
Widok testerki z błędem interpretera.Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.TypeError- błąd typu; błąd występuje, gdy próbujemy wykonać operację na niezgodnych typach danych, np. jeśli próbujemy dodać do siebie liczbę i napis.Przykład 9R1YS3dsDWBdfR
Widok testerki z błędem interpretera.Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.ZeroDivisionError- błąd dzielenia przez zero; błąd występuje, gdy program próbuje wykonać dzielenie przez zero, tzn. zawsze gdy dzielnik jest równy zero.Przykład 10RgGOdNXbfkWNg
Widok testerki z błędem interpretera.Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.
Choć czasem błędy w kodzie mogą wymagać wielu poprawek, często ich przyczyną są literówki. Szczególnie uważać należy, zapisując tzw. słowa kluczowe. Są to zarezerwowane słowa, które mają specjalne znaczenie w języku Python, na przykład def, return, if, else, for, while. Należy pamiętać, że w języku Python małe i duże litery, podobnie jak w wielu innych językach, są rozróżnialne. Nazwy funkcji, słów kluczowych, czy klas traktowane są jako różne, jeśli różnią się wielością liter, np. data i Data będą traktowane jako dwie oddzielne zmienne, a Return może być zmienną ze względu na pierwszą dużą literę (w odróżnieniu od słowa kluczowego return).
Jeśli podpowiedzi umieszczone w testerce nie pomogą ci rozwiązać zadania, możesz zajrzeć do sekcji z podpowiedzią oraz odpowiedzią, która znajduje się pod testerką.
Znajdziesz tam podpowiedzi oraz kod – nie tylko całe rozwiązanie, ale też poszczególne poprawne rozwiązania kolejnych etapów.

Aby jak najlepiej poznać interfejs testerki, zapoznaj się z ilustracją interaktywną.
Ważnym przyciskiem, który pojawi się na koniec wszystkich poprawnie wykonanych etapów jest Od początku. Uważaj, ponieważ działa on podobnie do restartu – nie tylko usuwa twój kod, ale wraca do pierwszego ekranu ćwiczenia, usuwając cały twój postęp.

Notatnik
Testerka on‑line
Poniżej znajduje się testerka z kodem w języku Python. W kolejnych krokach wykonuj polecenia, poprawiając przy tym błędy zawarte w kodzie.
Ćwiczenie wykonaj w kilku krokach w poniższej testerce.
Poniżej znajduje się testerka z przykładową instrukcją. Pierwszy wiersz zawiera błąd – to nie jest kod, który zostanie poprawnie uruchomiony.
Zestaw ćwiczeń interaktywnych
W testerce znajduje się program, którego zadaniem jest obliczenie pola trójkąta na podstawie długości jego boku oraz wysokości. Popraw błędy w programie.
Specyfikacja problemu:
Dane:
a– liczba naturalna; długość boku trójkątah– liczba naturalna; wysokość trójkąta
Wynik:
P– pole trójkątaRuxJ3Y8upYszi11
Napisz program, który sprawdzi, czy podana w kilometrach na godzinę prędkość przekracza prędkość dźwięku. Szczegółowe instrukcje znajdują się w testerce.
Przetestuj działanie programu dla wartości zmiennej predkosc_kmh = 1234.
Napisz program, który wyświetli tabliczkę mnożenia dla liczb od 1 do 10. Tabliczka powinna być wyświetlana w formie tabeli. Kolejne wartości powinny być oddzielone od siebie znakami spacji. Wykorzystaj pętle for.
Oczekiwany wynik działania programu:
Napisz program, który używa pętli while, aby wyświetlić liczby od 0 do liczby wskazanej w zmiennej maks_liczba. Wszystkie instrukcje poza przypisaniem zmiennej maks_liczba umieść w zdefiniowanej przez siebie funkcji wyswietl_liczby.
Specyfikacja problemu:
Dane:
maks_liczba– liczba naturalna
Wynik:
program wyświetla liczby od 0 do
maks_liczba
Słownik
obiekt, który przechowuje różne informacje
wydzielony fragment kodu programu; pozwala na zwiększenie przejrzystości kodu i jego wielokrotne użycie
słowa, które nie mogą być używane jako nazwy funkcji czy zmiennych, ponieważ mają przypisane konkretne znaczenie, np. def, None, pass, if, return
Bibliografia
Sysło M.M., Algorytmy, Wydawnictwo Helion, 2016.
Jurkiewicz A., Python 3. Projekty dla początkujących i pasjonatów, Wydawnictwo Helion, 2021.
Programowanie w Pythonie z Klubem Młodego Programisty – poziom podstawowy, it-szkola.edu.pl/kkurs,kurs,216+, dostęp 25.07.2022.
Kody źródłowe do książki Python 3 - Rozdział 3, github.com/abixadamj/helion-python/tree/main/Rozdzial_3, dostęp 25.07.2022.
Strona domowa języka Python, python.org, dostęp 25.07.2022.
Materiały OEIIZK w Warszawie o Python, python.oeiizk.waw.pl, dostęp 25.07.2022.



