R1YIliadPq7O3
Ilustracja przedstawia zbliżenie na dłonie mężczyzny piszącego w notatniku. Drugą ręką obsługuje klawiaturę laptopa.

Testerka do nauki podstaw programowania

Źródło: Pixabay, domena publiczna.

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.

  1. Interaktywna treść merytorycznaInteraktywna treść merytoryczna

  2. MultimediumMultimedium

  3. Zestaw ćwiczeń interaktywnychZestaw ćwiczeń interaktywnych

  4. SłownikSłownik

  5. BibliografiaBibliografia

Aby zrozumieć poruszane w tym materiale zagadnienia, przypomnij sobie:
Twoje cele
  • Zapiszesz kod w języku Python.

  • Przedstawisz najważniejsze informacje dotyczące zmiennychzmiennazmiennych.

  • 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.

Ważne!

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 (#).

Polecenie 1

Zapoznaj się z wyglądem okna testerki. Jej główne sekcje zostały podpisane na poniższym zrzucie.

R1XK5BxhtXSti
Widok testerki bez przykładowych instrukcji i kodu
Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.

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ź.

R1SL5Q9E6l2AE
Widok testerki z przykładowym poleceniem i kodem startowym.
Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.

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ą.

Przykład 1

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.

Przykład 2

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().

RAyyb4Ic0RitM
Widok testerki ze wskazówką podaną przy błędnej odpowiedzi.
Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.

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

R1QGOZsjy77wg
Widok testerki z poprawną odpowiedzią.
Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.

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.

Przykład 3

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.

Przykład 4

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.

ROkyUpJHhyhMW
Widok testerki ze wskazówką podaną przy błędnej odpowiedzi.
Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.

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 5
    R5ypsif03v917
    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 6
    RHyxXlWMMdNTO
    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 7
    R1ctmf2aEF50g
    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 8
    R1PFK7OoNtWEU
    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 9
    R1YS3dsDWBdfR
    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 10
    RgGOdNXbfkWNg
    Widok testerki z błędem interpretera.
    Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.
Ważne!

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. dataData 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.

R1GADbqfcAKo0
Widok wskazówek i kluczy odpowiedzi.
Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.
Polecenie 2

Aby jak najlepiej poznać interfejs testerki, zapoznaj się z ilustracją interaktywną.

R7vn45EPVfQyq
Ilustracja przedstawia interfejs testerki z fragmentem instrukcji i przyciskiem uruchom.
Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.

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.

RqH7uvGUGeqHi
Przycisk Od początku.
Źródło: GroMar sp. z o.o, licencja: CC BY 3.0.

Notatnik

R1CZhFAfRCDsr
Miejsce na Twoje notatki: (Uzupełnij).
2

Testerka on‑line

211
Ćwiczenie 1

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.

RCiiX8gkyRd3R1
Widok testerki z instrukcją.
111
Ćwiczenie 2

Poniżej znajduje się testerka z przykładową instrukcją. Pierwszy wiersz zawiera błąd – to nie jest kod, który zostanie poprawnie uruchomiony.

R1QIVw7PfjomG1
Widok testerki z błędem do poprawy w zadaniu.
3

Zestaw ćwiczeń interaktywnych

Rt4sijalfWV3y11
Ćwiczenie 3
Połącz ze sobą komunikat błędu (prawa kolumna, nazwy angielskie) z typem błędu.
Źródło: GroMar, licencja: CC BY 3.0.
Rue2YfOmrCYxD21
Ćwiczenie 4
Zdecyduj, które zdania są prawdziwe, a które fałszywe.
Źródło: GroMar, licencja: CC BY 3.0.
RyuSnraBibwcs21
Ćwiczenie 5
Dopasuj przykłady błędów do ich odpowiednich kategorii.
Źródło: GroMar, licencja: CC BY 3.0.
R4FxrAVi8eTzI1
Ćwiczenie 6
Wskaż funkcje i słowa kluczowe.
11
Ćwiczenie 7

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ąta

  • h – liczba naturalna; wysokość trójkąta

Wynik:

  • P – pole trójkąta

    RuxJ3Y8upYszi11
11
Ćwiczenie 8

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.

RiXjDYy6mEelN11
311
Ćwiczenie 9

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:

Linia 1. 1 2 3 4 5 6 7 8 9 10. Linia 2. 2 4 6 8 10 12 14 16 18 20. Linia 3. 3 6 9 12 15 18 21 24 27 30. Linia 4. 4 8 12 16 20 24 28 32 36 40. Linia 5. 5 10 15 20 25 30 35 40 45 50. Linia 6. 6 12 18 24 30 36 42 48 54 60. Linia 7. 7 14 21 28 35 42 49 56 63 70. Linia 8. 8 16 24 32 40 48 56 64 72 80. Linia 9. 9 18 27 36 45 54 63 72 81 90. Linia 10. 10 20 30 40 50 60 70 80 90 100.
RULyBqRkqARl6
11
Ćwiczenie 10

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

R1OocoQCZz9su
4

Słownik

zmienna
zmienna

obiekt, który przechowuje różne informacje

funkcja
funkcja

wydzielony fragment kodu programu; pozwala na zwiększenie przejrzystości kodu i jego wielokrotne użycie

słowa kluczowe
słowa kluczowe

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

5

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.