Dziesięć lekcji informatyki: od pierwszego chatbota po zaawansowane debugowanie kodu. Aktualny rok w obliczeniach: 2026.
Python nie ma nic wspólnego z wężem! Język ten został stworzony na początku lat 90. (pierwsza wersja ukazała się w lutym 1991 roku) przez holenderskiego programistę, Guido van Rossuma. Autor był wielkim fanem brytyjskiej grupy komediowej Monty Python, skąd zaczerpnął nazwę. Składnia Pythona charakteryzuje się minimalizmem i przejrzystością — bloki kodu są tu definiowane przez wcięcia, a nie klamry, co wymusza pisanie czytelnego kodu.
Program napisany w Pythonie składa się z zestawu instrukcji. Komputer operuje jednak na kodzie maszynowym (zera i jedynki). Proces tłumaczenia kodu może przebiegać na dwa sposoby:
python --version
We wcześniejszych klasach programowałeś, układając kolorowe klocki w programie Scratch. Python to język tekstowy, co oznacza, że komendy wpisujemy z klawiatury. Jednak logika pozostaje dokładnie ta sama! Zobaczmy to na przykładzie pobierania imienia i przywitania użytkownika.
W Scratchu, aby zapytać o imię, zapamiętać je i wyświetlić powitanie, musisz połączyć klocki z aż czterech różnych kategorii:
zapytaj [Jak masz na imię?] i czekaj
(odpowiedź)
ustaw [imię] na (odpowiedź)
połącz [Cześć ] i (imię)
powiedz [...]
W Pythonie robimy dokładnie to samo, ale oszczędzamy mnóstwo klikania, bo załatwiamy to wszystko zaledwie w dwóch krótkich linijkach tekstu!
ustaw [imię] na (odpowiedź z zapytaj)
imie = input("Jak masz na imię? ")
powiedz [połącz [Cześć ] i (imię)]
print("Cześć " + imie)
Jeżeli (warunek) to...
if warunek:
Python to podstawa dzisiejszego internetu i nauki. Używają go takie serwisy jak Instagram, Spotify, Netflix czy YouTube. NASA wykorzystuje go do obliczeń, a ponadto jest to absolutny numer jeden w dziedzinie tworzenia Sztucznej Inteligencji (AI).
Wyobraź sobie, że piszesz program, w którym w linijce 10 zrobiłeś błąd. W którym rodzaju języka program uruchomi pierwsze 9 linijek, zanim zauważy problem, a w którym w ogóle nie wystartuje?
W języku interpretowanym (czyli w Pythonie) program uruchomi pierwsze 9 linijek poprawnie i wyrzuci błąd dopiero w 10. W języku kompilowanym program w ogóle nie wystartuje, ponieważ kompilator nie zbuduje pliku wykonywalnego, dopóki nie poprawisz błędu.
print()
input()
Program komputerowy to wymiana informacji: wysyłasz komunikat do użytkownika, a on odpowiada. Do wyświetlania tekstu na ekranie służy funkcja print(). Do pobrania tego, co wpisze użytkownik, służy funkcja input(). Dane wpisane przez użytkownika musisz gdzieś zapamiętać — od tego są zmienne. Nadajesz im unikalną nazwę i przypisujesz wartość za pomocą pojedynczego znaku równości, np. imie = "Ola".
imie = "Ola"
Kiedy chcesz połączyć kilka tekstów w jedno zdanie, używasz znaku plus +. Nazywamy to konkatenacją (sklejaniem napisów). Na tej lekcji program jeszcze niczego nie liczy — skupia się wyłącznie na interakcji tekstowej.
+
# Pierwszy chatbot - program, który rozmawia z użytkownikiem print("Cześć! Jestem Twoim pierwszym chatbotem.") # Przywitanie użytkownika imie = input("Jak masz na imię? ") # Pobieramy imię i wkładamy do zmiennej "imie" print("Miło Cię poznać, " + imie + "!") # Sklejamy trzy teksty znakiem plus miasto = input("A gdzie mieszkasz? ") # Drugie pytanie do użytkownika print(imie + " mieszka w miejscowości " + miasto + ". Super!")
Po uruchomieniu programu i wpisaniu odpowiedzi konsola pokaże:
Napisz program, który wyświetli trzy osobne zdania: przywitanie, krótką informację o programie („Jestem samouczkiem”) oraz zaproszenie do pracy. Użyj trzech osobnych wywołań print().
print("Witaj na lekcji informatyki!") print("Jestem samouczkiem i pomagam w nauce Pythona.") print("Rozpocznijmy pracę — wpisuj kody uważnie.")
Zapytaj użytkownika o imię, zapisz je w zmiennej imie, a następnie wyświetl spersonalizowane przywitanie, łącząc teksty znakiem plus.
imie
imie = input("Jak masz na imię? ") print("Cześć " + imie + "! Witaj w moim programie.")
Zbuduj program, który zada trzy pytania: o imię, ulubiony przedmiot szkolny oraz ulubione zwierzę. Każdą odpowiedź zapisz w osobnej zmiennej, a na końcu utwórz jedno podsumowujące zdanie.
imie = input("Jak masz na imię? ") przedmiot = input("Jaki jest Twój ulubiony przedmiot szkolny? ") zwierze = input("Jakie jest Twoje ulubione zwierzę? ") print("Podsumowanie odpowiedzi:") print(imie + " najbardziej lubi przedmiot: " + przedmiot + " oraz zwierzę: " + zwierze + ".")
Poproś o podanie trzech słów: imienia postaci, miejsca akcji oraz przedmiotu. Następnie utwórz z nich krótką opowieść (przynajmniej dwa zdania), wykorzystując wszystkie pobrane zmienne.
postać = input("Podaj imię postaci: ") miejsce = input("Podaj miejsce akcji: ") przedmiot = input("Podaj przedmiot: ") print("Pewnego dnia " + postać + " udał się do miejsca znanego jako " + miejsce + ".") print("Na miejscu odnalazł tajemniczy przedmiot: " + przedmiot + ", który zmienił wszystko.")
print(Cześć)
print("Cześć")
print("Cześć"
"Cześć " + imie
Czym różni się print() od input()?
print() służy do wypisywania informacji na ekran, a input() zatrzymuje program i pobiera tekst wpisany przez użytkownika.
Czy wielkość liter w nazwach zmiennych ma znaczenie?
Tak. Zmienne imie oraz Imie to dla Pythona dwa zupełnie inne obszary w pamięci.
Imie
int
float
str
bool
type()
5
"5"
Każda informacja przetwarzana w Pythonie ma przypisany konkretny typ. Decyduje on o tym, jakie operacje można wykonać na danej zmiennej. Oto podstawowe typy danych, z którymi będziesz pracować:
"Cześć"
'Python'
""
" "
"..."
'...'
42
-7
0
2026
3.14
-0.5
7.0
0.0
.
True
False
"42"
5.0
"True"
# Sprawdzanie typów zmiennych funkcją type() wiek = 15 # Liczba całkowita -> int srednia = 4.75 # Liczba zmiennoprzecinkowa -> float klasa = "8a" # Tekst -> str zdał = True # Wartość logiczna -> bool print("Typ zmiennej wiek:", type(wiek)) print("Typ zmiennej srednia:", type(srednia)) print("Typ zmiennej klasa:", type(klasa)) print("Typ zmiennej zdal:", type(zdał)) # Różnica w działaniu tego samego operatora: print(5 + 5) # Wynik: 10 (dodawanie wartości int) print("5" + "5") # Wynik: 55 (konkatenacja napisów str)
Sprawdź i wyświetleń na ekranie typ wyniku, jaki generuje wyrażenie 5 + 3.0. Dopisz w komentarzu uzasadnienie wyniku.
5 + 3.0
wynik = 5 + 3.0 print("Typ wyrażenia 5 + 3.0 wynosi:", type(wynik)) # Uzasadnienie: Python automatycznie promuje int do float podczas działań z liczbą zmiennoprzecinkową.
Pobierz od użytkownika dowolną wartość przez input(), a następnie wypisz komunikat informujący o jej typie danych. Przetestuj program wpisując liczbę.
dane = input("Wpisz cokolwiek: ") print("Typ wprowadzonych danych to:", type(dane)) # Wniosek: Funkcja input() zawsze zwraca dane typu str, niezależnie od wpisanej treści.
"Wiek: " + 15
"Wiek: " + str(15)
true
false
int()
float()
Skoro funkcja input() zawsze zapisuje pobrane znaki jako tekst (str), nie możesz na nich bezpośrednio wykonywać operacji matematycznych (odejmowanie, mnożenie, dzielenie). Próba odjęcia tekstu od liczby spowoduje błąd wykonania. Rozwiązaniem jest rzutowanie typów, czyli jawna konwersja danych.
Funkcja int() przekształca poprawny tekstowy zapis liczby na liczbę całkowitą, natomiast funkcja float() na liczbę zmiennoprzecinkową. Najwygodniej jest dokonać konwersji bezpośrednio podczas pobierania danych: zmienna = int(input()). Do obliczeń wieku przyjmujemy stały rok 2026. Jeśli po wykonaniu obliczeń chcesz połączyć wynik liczbowy z tekstem za pomocą operatora +, pamiętaj o ponownej konwersji na tekst za pomocą funkcji str().
zmienna = int(input())
str()
# Program obliczający rok urodzenia — rok bieżący to 2026 AKTUALNY_ROK = 2026 wiek = int(input("Podaj swój wiek: ")) # Konwersja tekstu z input na int rok_urodzenia = AKTUALNY_ROK - wiek # Bezpieczne działanie matematyczne print("Urodziłeś/aś się w okolicach " + str(rok_urodzenia) + " roku.")
# Obliczanie wskaźnika masy ciała BMI waga = float(input("Podaj swoją wagę w kg (np. 65.5): ")) wzrost = float(input("Podaj swój wzrost w metrach (np. 1.75): ")) bmi = waga / (wzrost ** 2) # Operator ** oznacza potęgowanie print("Wskaźnik BMI wynosi: " + str(bmi))
Dla przykładowych danych wejściowych (wiek: 14):
Napisz program, który pobierze od użytkownika dwie liczby całkowite, a następnie obliczy i wyświetli ich sumę.
liczba1 = int(input("Podaj pierwszą liczbę całkowitą: ")) liczba2 = int(input("Podaj drugą liczbę całkowitą: ")) suma = liczba1 + liczba2 print("Suma podanych liczb wynosi: " + str(suma))
Napisz program pobierający trzy oceny szkolne (mogą być z połówkami, np. 4.5). Oblicz ich średnią arytmetyczną i wyświetl ją na ekranie.
ocena1 = float(input("Podaj pierwszą ocenę: ")) ocena2 = float(input("Podaj drugą ocenę: ")) ocena3 = float(input("Podaj trzecią ocenę: ")) srednia = (ocena1 + ocena2 + ocena3) / 3 print("Średnia ocen wynosi: " + str(srednia))
Przetestuj działanie funkcji int() na bezpośrednio wpisanej w kodzie liczbie zmiennoprzecinkowej int(3.99). Wyświetl wynik i sprawdź w sekcji FAQ, dlaczego nie nastąpiło zaokrąglenie.
int(3.99)
liczba = 3.99 skonwertowana = int(liczba) print("Wartość oryginalna:", liczba) print("Po konwersji na int:", skonwertowana) # Wyświetli 3
int("abc")
Dlaczego int(3.99) daje wynik 3, a nie 4?
Funkcja int() działając na liczbie zmiennoprzecinkowej całkowicie odcina część ułamkową (wykonuje tradycyjne brakowanie), zamiast zaokrąglać matematycznie. Do zaokrągleń służy funkcja round().
round()
*
/
**
//
%
Oprócz standardowych działań matematycznych, Python posiada trzy operatory, które znacznie ułatwiają tworzenie algorytmów obliczeniowych. Znak podwójnej gwiazdki ** odpowiada za operację potęgowania (np. 3 ** 3 to 3 do potęgi 3, czyli 27). Podwójny ukośnik // realizuje dzielenie całkowite — zwraca pełną liczbę ile razy dzielnik mieści się w dzielnej, odrzucając całą resztę.
3 ** 3
Kluczowym operatorem w informatyce jest modulo, zapisywane jako znak procentu %. Zwraca ono wyłącznie resztę z dzielenia całkowitego. Przykładowo, 17 % 5 daje wynik 2, ponieważ 5 mieści się w 17 trzy razy (15) i zostaje 2 reszty. Jeśli reszta z dzielenia dowolnej liczby przez 2 wynosi 0, oznacza to, że liczba jest parzysta. Z kolei operacja liczba % 10 pozwala wyizolować ostatnią cyfrę dowolnej liczby całkowitej.
17 % 5
liczba % 10
# Prezentacja zaawansowanych operatorów matematycznych liczba1 = 17 liczba2 = 5 print("Zwykłe dzielenie (float):", liczba1 / liczba2) # Wynik: 3.4 print("Dzielenie całkowite (int):", liczba1 // liczba2) # Wynik: 3 print("Reszta z dzielenia (modulo):", liczba1 % liczba2) # Wynik: 2 print("Potęgowanie:", liczba2 ** 3) # 5 do potęgi 3, czyli 125
Napisz program pakujący jajka do wytłaczanek po 6 sztuk. Pobierz od użytkownika łączną liczbę jajek, a następnie wyświetl ile pełnych paczek uda się zapełnić oraz ile jajek zostanie luzem.
laczna_liczba = int(input("Podaj łączną liczbę jajek: ")) pelne_paczki = laczna_liczba // 6 zostalo_luzem = laczna_liczba % 6 print("Liczba pełnych paczek: " + str(pelne_paczki)) print("Jajka pozostałe luzem: " + str(zostalo_luzem))
Pobierz od użytkownika dowolną liczbę dwucyfrową. Wykorzystując poznane operatory matematyczne, wyodrębnij i wyświetl osobno cyfrę dziesiątek oraz cyfrę jedności.
liczba = int(input("Podaj liczbę dwucyfrową: ")) cyfra_dziesiatek = liczba // 10 cyfra_jednosci = liczba % 10 print("Cyfra dziesiątek: " + str(cyfra_dziesiatek)) print("Cyfra jedności: " + str(cyfra_jednosci))
2 ^ 3
2 ** 3
10 / 0
10 % 0
if ... else
Instrukcja warunkowa pozwala na zmianę ścieżki wykonania programu w zależności od spełnienia określonego kryterium. Konstrukcja if bada warunek logiczny. Jeśli zwraca on wartość True, wykonywany jest blok kodu znajdujący się bezpośrednio pod instrukcją. Jeśli warunek zwraca False, program przechodzi do opcjonalnej sekcji else.
if
else
Do budowania warunków stosujemy operatory porównania: == (pytanie o równość), != (różne od), >, <, >=, <=. Pamiętaj o fundamentalnej zasadzie Pythona: po instrukcji if oraz else musi pojawić się dwukropek, a cały kod zależny od tej decyzji musi posiadać wcięcie (4 spacje lub jeden tabulator).
==
!=
>
<
>=
<=
# Sprawdzanie warunków i kontrola wcięć wiek = int(input("Podaj swój wiek: ")) if wiek >= 18: print("Dostęp przyznany. Jesteś osobą pełnoletnią.") # Kod wcięty else: print("Odmowa dostępu. Brak wymaganych lat.") # Kod wcięty # Przykład dla tekstu odpowiedz = input("Czy lubisz ogórki kiszone? (tak/nie): ") if odpowiedz == "tak": print("O, fajnie, ja też lubię!") else: print("Szkoda, a ja lubię.")
Dla odpowiedzi „tak” na drugie pytanie:
Napisz program sprawdzający hasło. Jeśli użytkownik wprowadzi tekst "zaliczenie2026", program wypisze „Hasło poprawne”, w przeciwnym razie wyświetli komunikat „Błędne hasło”.
"zaliczenie2026"
wpisane_haslo = input("Podaj hasło dostępu: ") if wpisane_haslo == "zaliczenie2026": print("Hasło poprawne.") else: print("Błędne hasło.")
Pobierz liczbę całkowitą i wykorzystując operator modulo, poinformuj użytkownika za pomocą komunikatu, czy podana liczba jest parzysta, czy nieparzysta.
liczba = int(input("Podaj liczbę całkowitą: ")) if liczba % 2 == 0: print("Podana liczba jest parzysta.") else: print("Podana liczba jest nieparzysta.")
if x = 5:
elif
and
or
not
Gdy sytuacja wymaga sprawdzenia więcej niż dwóch wykluczających się możliwości, stosujemy instrukcję elif (skrót od else if). Python analizuje warunki od góry do dołu. Gdy napotka pierwszy spełniony, wykonuje przypisany do niego wcięty blok kodu, a całą resztę struktury decyzyjnej automatycznie pomija.
Do jednoczesnego sprawdzania kilku kryteriów stosujemy operatory logiczne. Słowo kluczowe and zwraca prawdę tylko wtedy, gdy oba warunki składowe są prawdziwe. Operator or wymaga, aby przynajmniej jedna składowa była prawdziwa. Pozwala to na napisanie programu wyliczającego etap szkolny na bazie wieku oraz wieku rozpoczęcia nauki (zakładając standardowy wzór: wiek - wiek_rozpoczecia + 1).
wiek - wiek_rozpoczecia + 1
# Wyznaczanie typu szkoły i klasy na podstawie wieku wiek = int(input("Ile masz lat? ")) wiek_startu = int(input("W jakim wieku zacząłeś pierwszą klasę? (6 lub 7): ")) klasa_ogolna = wiek - wiek_startu + 1 if klasa_ogolna < 1: print("Nie chodzisz jeszcze do szkoły.") elif klasa_ogolna <= 8: print("Powinieneś chodzić do klasy " + str(klasa_ogolna) + " szkoły podstawowej.") elif klasa_ogolna <= 12: klasa_srednia = klasa_ogolna - 8 print("Powinieneś chodzić do klasy " + str(klasa_srednia) + " szkoły średniej.") else: print("Prawdopodobnie ukończyłeś już szkołę średnią.")
Dla osoby w wieku 14 lat, która wystartowała w wieku 7 lat:
Film w kinie dozwolony jest od lat 16, chyba że uczeń znajduje się pod opieką dorosłego. Napisz program, który pyta o wiek oraz o obecność opiekuna (odpowiedź „tak” lub „nie”). Zezwól na wejście, jeśli wiek wynosi co najmniej 16 lat LUB obecny jest opiekun.
wiek = int(input("Podaj swój wiek: ")) opiekun = input("Czy jesteś pod opieką osoby dorosłej? (tak/nie): ") if wiek >= 16 or opiekun == "tak": print("Możesz wejść na seans kinowy.") else: print("Niestety, wejście na film jest zablokowane.")
if 13 <= wiek <= 19:
if wiek >= 13 and <= 19:
if wiek >= 13 and wiek <= 19:
[]
.append()
.pop()
in
Do tej pory jedna zmienna mogła przechowywać tylko jedną informację. Gdy zachodzi potrzeba przechowania zbioru powiązanych obiektów (np. listy przedmiotów w plecaku), idealnie sprawdza się struktura danych nazywana listą. Definiujemy ją umieszczając elementy w nawiasach kwadratowych i rozdzielając je przecinkami: ekwipunek = ["zeszyt", "linijka", "klucze"].
ekwipunek = ["zeszyt", "linijka", "klucze"]
Dostęp do konkretnej pozycji uzyskujemy za pomocą indeksu numerycznego. **Zapamiętaj: w programowaniu elementy numerujemy zawsze od zera!** Indeks 0 oznacza pierwszą pozycję. Indeksy ujemne pozwalają na liczenie pozycji od końca listy: indeks -1 oznacza bezwzględnie ostatni element kolekcji. Łączną liczbę elementów weryfikujemy funkcją len().
len()
# Zarządzanie strukturą listy w Pythonie przedmioty = ["zeszyt", "piórnik", "podręcznik"] print("Pierwszy element:", przedmioty[0]) # Wyświetli: zeszyt print("Ostatni element:", przedmioty[-1]) # Wyświetli: podręcznik # Dodawanie nowego elementu na koniec listy przedmioty.append("kalkulator") print("Po dodaniu:", przedmioty) # Usunięcie ostatniego elementu z listy przedmioty.pop() print("Po usunięciu:", przedmioty) # Badanie przynależności operatorem 'in' print("Czy jest piórnik?:", "piórnik" in przedmioty) # Zwróci True
Stwórz listę zawierającą nazwy trzech Twoich ulubionych dań. Wyświetl pozycję pierwszą, ostatnią oraz łączną długość listy przy użyciu funkcji len().
dania = ["pizza", "naleśniki", "spaghetti"] print("Pierwsze danie z listy: " + dania[0]) print("Ostatnie danie z listy: " + dania[-1]) print("Łączna liczba dań wynosi: " + str(len(dania)))
Stwórz listę zawierającą cztery nazwy miast. Zapytaj użytkownika przez input() o nazwę miasta, którego szuka, a następnie za pomocą operatora in oraz instrukcji if ... else wyświetl informację, czy miasto znajduje się na liście.
miasta = ["Warszawa", "Kraków", "Gdańsk", "Tarnów"] szukane = input("Podaj nazwę szukanego miasta: ") if szukane in miasta: print("Tak, to miasto znajduje się w naszej bazie danych!") else: print("Niestety, nie odnaleziono podanego miasta.")
lista[3]
Dzisiaj połączysz wszystko, czego się do tej pory nauczyłeś. Gra przygodowa (paragrafowa) opiera się na interaktywnym opisywaniu scen, zbieraniu danych o wyborach gracza i kierowaniu fabuły na odpowiednie tory za pomocą instrukcji warunkowych.
Ekwipunek gracza stworzysz jako początkowo pustą listę []. W miarę postępu rozgrywki i podejmowania decyzji o zbadaniu otoczenia, będziesz dodawać przedmioty metodą .append(). Przy finale gry użyjesz operatora in, aby zweryfikować, czy gracz posiada w inwentarzu przedmiot niezbędny do pomyślnego ukończenia misji.
# Kompletna gra tekstowa — Zamek tajemnic print("=== ZAMEK TAJEMNIC ===") bohater = input("Podaj imię swojego bohatera: ") ekwipunek = [] print("Witaj, " + bohater + "! Stoisz przed wrotami opuszczonego zamku.") print("Na ziemi widzisz leżącą, zapaloną pochodnię.") wybor = input("Czy decydujesz się podnieść pochodnię? (tak/nie): ") if wybor == "tak": ekwipunek.append("pochodnia") print("Podniosłeś pochodnię. Pomoże Ci rozświetlić ciemności korytarzy.") else: print("Zostawiłeś pochodnię. W zamkowych lochach będzie całkowicie ciemno.") print("Wchodzisz do głównej sali. Droga rozchodzi się w lewo i w prawo.") kierunek = input("W którą stronę udaje się " + bohater + "? (lewo/prawo): ") if kierunek == "lewo": print("Trafiłeś do starego skarbca. Na ołtarzu leży złoty klucz!") ekwipunek.append("złoty klucz") print("Złoty klucz trafia do Twojego ekwipunku.") elif kierunek == "prawo": print("Wszedłeś do zamkowej kuchni. Znalazłeś tam świeżą kanapkę.") ekwipunek.append("kanapka") else: print("Potknąłeś się w ciemności i zostałeś zmuszony do wycofania się.") print("----------------------------------------") print("Docierasz do wielkich, stalowych wrót wyjściowych.") print("Zawartość Twojego plecaka:", ekwipunek) print("----------------------------------------") # Sprawdzamy warunek zwycięstwa if "złoty klucz" in ekwipunek: print("Wkładasz złoty klucz do zamka. Wrota otwierają się z głośnym hukiem!") print("Udało Ci się uciec z zamku ze skarbem. Gratulacje, wygrałeś grę!") else: print("Próbujesz pchnąć wrota, ale bez złotego klucza ani drgną.") print("Zostałeś uwięziony w zamku na zawsze. Przegrałeś rozgrywkę.")
Zanim przejdziesz do konkretnych błędów, musisz wiedzieć, jak w ogóle czytać komunikaty Pythona. Kiedy program napotyka problem, w konsoli często pojawia się blok tekstu zaczynający się od słów Traceback (most recent call last):. Dla początkujących wygląda to przerażająco, ale to tylko mapa drogowa błędu.
Traceback (most recent call last):
Kliknij na poniższe nazwy błędów, aby dowiedzieć się, jak skutecznie je naprawiać.
Występuje, gdy złamiesz podstawowe zasady gramatyki i zapisu języka Python — to odpowiednik błędu ortograficznego lub interpunkcyjnego w wypracowaniu.
if odpowiedz = "tak":
=
if odpowiedz == "tak":
Python określa przynależność kodu strukturalnego (np. instrukcji pod warunkiem if) za pomocą wcięć od lewej krawędzi. Brak wcięcia uniemożliwia uruchomienie pliku.
if wiek >= 18: print("Jesteś pełnoletni!")
if wiek >= 18: print("Jesteś pełnoletni!") # Dodano wymagane 4 spacje wcięcia
Pojawia się w momencie, gdy odwołujesz się do zmiennej lub funkcji, która nie została wcześniej utworzona, lub popełniłeś literówkę w jej nazwie.
imie = input("Podaj imię: ") print("Witaj, " + Imie)
imie = input("Podaj imię: ") print("Witaj, " + imie)
Występuje, gdy próbujesz wykonać operację niedozwoloną dla danego typu danych (np. zmusić program do odjęcia tekstu od wartości liczbowej).
wiek = input("Ile masz lat? ") rok_urodzenia = 2026 - wiek
wiek = int(input("Ile masz lat? ")) # Konwersja tekstu na int rok_urodzenia = 2026 - wiek
Występuje, gdy funkcja otrzyma dane właściwego typu, ale ich treść uniemożliwia poprawne przetworzenie (np. próba wymuszenia konwersji liter na cyfry).
wiek = int(input("Podaj wiek: "))
Zasada matematyczna mówiąca, że nie wolno dzielić przez zero, obowiązuje również w programowaniu. Próba wykonania takiego działania natychmiast przerywa program.
wzrost = float(input("Podaj wzrost w metrach: ")) # Użytkownik wpisuje 0 bmi = 60 / (wzrost ** 2)
wzrost = float(input("Podaj wzrost w metrach: ")) if wzrost > 0: bmi = 60 / (wzrost ** 2) else: print("Wzrost musi być większy od zera!")
Występuje, gdy próbujesz pobrać lub zmodyfikować element listy, posługując się indeksem, który fizycznie na tej liście nie istnieje.
oceny = [4, 5, 6] print(oceny[3])
oceny = [4, 5, 6] print(oceny[2]) # Wyświetli poprawnie trzecią wartość, czyli 6