Dataniedziela, 9 sierpnia 2026 Czas06:36:22
← Python — programowanie

Lekcja 1. Zmienne i typy danych w Pythonie

latwy

Po co się tego uczymy?

Python jest głównym językiem części komputerowej matury z informatyki (Arkusz II, 150 minut) — a każdy program, niezależnie od tego, jak skomplikowany, zaczyna się od tego samego: przechowywania danych w zmiennych. Bez pewnego opanowania typów danych nie da się poprawnie napisać ANI PRZECZYTAĆ żadnego kolejnego zagadnienia z tego kursu — od instrukcji warunkowych po algorytmy z działu obok.

Teoria

Zmienna to nazwane miejsce w pamięci komputera, w którym przechowywana jest wartość. W Pythonie NIE deklarujemy jawnie typu zmiennej (jak w C# przez int/string) — wystarczy przypisać wartość, a Python sam rozpozna typ. To tzw. typowanie dynamiczne: ta sama zmienna może w trakcie działania programu zmienić typ (choć w praktyce dobrym zwyczajem jest tego unikać, dla czytelności kodu).

Cztery podstawowe typy danych:

  • int — liczba całkowita, bez ograniczenia rozmiaru w Pythonie (w przeciwieństwie do C#, gdzie int ma sztywny zakres) — np. 7, -42, 1000000000000.
  • float — liczba zmiennoprzecinkowa (z częścią po przecinku), np. 3.14, -0.5. UWAGA: obliczenia na float mogą mieć drobne błędy zaokrągleń (patrz dział "Sieci i sprzęt komputerowy" — reprezentacja IEEE 754).
  • str — łańcuch znaków (tekst), zapisywany w cudzysłowie pojedynczym 'tekst' lub podwójnym "tekst" — oba zapisy są RÓWNOWAŻNE w Pythonie.
  • bool — wartość logiczna: True albo False (WIELKIE litery — to ważne, true małymi literami nie zadziała).

Sprawdzanie typu — funkcja type(zmienna) zwraca DOKŁADNY typ danej wartości. Przydaje się to zwłaszcza przy debugowaniu, gdy program zachowuje się inaczej, niż oczekujemy.

Konwersja typów (rzutowanie) — Python pozwala jawnie zamienić jeden typ na inny: int("15") zamienia tekst na liczbę całkowitą, float("3.5") na liczbę zmiennoprzecinkową, str(42) na tekst. To NIEZBĘDNE, bo funkcja input() (pobierająca dane od użytkownika) ZAWSZE zwraca str — nawet jeśli użytkownik wpisze liczbę.

Zasady nazewnictwa zmiennych w Pythonie — nazwa musi zaczynać się od litery lub podkreślnika (nie od cyfry), może zawierać litery, cyfry i podkreślniki, jest WRAŻLIWA na wielkość liter (wiek i Wiek to DWIE różne zmienne). Konwencja w Pythonie (tzw. snake_case) to pisanie wieloczłonowych nazw małymi literami z podkreślnikiem: liczba_uczniow, nie liczbaUczniow (to z kolei konwencja C#/Javy, tzw. camelCase).

Formatowanie tekstu — f-string — najwygodniejszy sposób wstawiania wartości zmiennych do tekstu to poprzedzenie cudzysłowu literą f i umieszczenie zmiennych w klamrach: f"Masz {wiek} lat". To odpowiednik interpolacji stringów, znanej z innych języków (w C# to podobna składnia $"Masz {wiek} lat").

Schemat

ZMIENNA = "pudełko z etykietą" w pamięci:

  wiek = 17          →  [wiek]   → 17        (typ: int)
  pi = 3.14          →  [pi]     → 3.14      (typ: float)
  imie = "Zosia"     →  [imie]   → "Zosia"   (typ: str)
  pelnoletni = False →  [pelnoletni] → False (typ: bool)

KONWERSJA (rzutowanie) - zawsze JAWNA w Pythonie:
  tekst = input("Podaj wiek: ")   → tekst ma typ str, NAWET dla "17"
  wiek = int(tekst)               → dopiero teraz to liczba

  int("15")    → 15      (str -> int)
  str(42)      → "42"    (int -> str)
  float("3.5") → 3.5     (str -> float)

Przykład z życia

Aplikacja do liczenia kalorii przechowuje: nazwę posiłku (str), liczbę kalorii (int), wagę porcji w gramach (float, bo bywa ułamkowa) i informację, czy posiłek był wegetariański (bool). To dokładnie te same cztery typy danych, których nauczysz się w tej lekcji — każda, nawet najbardziej złożona aplikacja, w gruncie rzeczy żongluje tymi samymi podstawowymi "klockami".

zmienne_i_typy.py

# Cztery podstawowe typy danych w Pythonie
wiek = 17                  # int - liczba całkowita
srednia_ocen = 4.75         # float - liczba zmiennoprzecinkowa
imie = "Zosia"              # str - tekst
pelnoletni = False           # bool - wartość logiczna

print(f"Imię: {imie}, wiek: {wiek}, średnia: {srednia_ocen}")
print(f"Czy pełnoletnia? {pelnoletni}")

# Sprawdzanie typu funkcją type()
print(type(wiek))          # <class 'int'>
print(type(srednia_ocen))  # <class 'float'>
print(type(imie))          # <class 'str'>
print(type(pelnoletni))    # <class 'bool'>

# input() ZAWSZE zwraca tekst (str) - trzeba jawnie rzutować!
tekst_z_klawiatury = input("Podaj swój wiek: ")
print(type(tekst_z_klawiatury))          # <class 'str'>  (nawet dla "17"!)

wiek_jako_liczba = int(tekst_z_klawiatury)
print(type(wiek_jako_liczba))            # <class 'int'>
print(f"Za 5 lat będziesz mieć {wiek_jako_liczba + 5} lat")

Komentarz i wyjaśnienie kodu

Zwróć uwagę, że NIE musieliśmy nigdzie napisać "to jest int" ani "to jest str" — Python sam rozpoznaje typ na podstawie WARTOŚCI, którą przypisujemy (typowanie dynamiczne). To duża różnica względem C#, gdzie musisz jawnie napisać int wiek = 17;.

tekst_z_klawiatury = input(...) zawsze zwraca str, NAWET jeśli użytkownik wpisze same cyfry — dlatego próba tekst_z_klawiatury + 5 (bez wcześniejszego int()) rzuciłaby błąd: Python nie potrafi dodać liczby do tekstu. Trzeba NAJPIERW jawnie zrzutować przez int().

f-string (f"...") automatycznie zamienia wartość zmiennej w tekst wewnątrz klamr {} — działa to dla KAŻDEGO typu (int, float, str, bool), bez potrzeby ręcznego wywoływania str().

Ćwiczenie samodzielne

Utwórz cztery zmienne opisujące Twój ulubiony film: tytuł (str), rok premiery (int), ocenę w skali 1-10 z częścią dziesiętną (float) i informację, czy polecasz go znajomym (bool). Wypisz wszystkie cztery wartości w jednym zdaniu przy pomocy f-stringa.

Plac zabaw — wypróbuj online

Poniższy kod wykonuje się od razu w Twojej przeglądarce — nic nie trzeba instalować. Zmień kod i kliknij „Uruchom”.

PYTHON

Zadania do pracy własnej

  1. Napisz program, który pyta użytkownika o imię i wiek (przez input()), a następnie wypisuje zdanie w stylu: "Cześć [imię]! Za 10 lat będziesz mieć [wiek+10] lat." Pamiętaj o zrzutowaniu wieku na int.

  2. Napisz program obliczający pole i obwód prostokąta na podstawie dwóch boków wpisanych przez użytkownika jako liczby zmiennoprzecinkowe (float). Wynik wypisz z dokładnością do dwóch miejsc po przecinku (wskazówka: f-string obsługuje formatowanie: f"{wartosc:.2f}").

  3. Napisz program-kalkulator BMI: użytkownik podaje wagę (kg, float) i wzrost (m, float), program oblicza BMI (waga / wzrost**2) i wypisuje wynik ORAZ jedną z czterech kategorii (niedowaga/norma/nadwaga/otyłość) jako osobną zmienną typu str, ustaloną instrukcją warunkową (poznasz ją w kolejnej lekcji — na razie możesz założyć z góry jedną wartość testową).

Typowe błędy

Zapominanie, że input() zawsze zwraca str — próba input("Podaj liczbę: ") + 1 rzuci błąd TypeError, bo Python nie może dodać liczby do tekstu, nawet jeśli tekst "wygląda jak liczba".

Mylenie = (przypisanie) z porównaniem — pojedynczy znak = NADAJE wartość, a porównanie (poznasz w kolejnej lekcji) to podwójne ==.

Używanie wielkich liter w True/False niekonsekwentnie — Python rozróżnia wielkość liter, więc true czy false (małymi) to BŁĄD składniowy (Python potraktuje to jako nazwę nieistniejącej zmiennej), nie wartość logiczna.

Nawiązanie do egzaminu zawodowego

Zmienne i typy danych to absolutna podstawa, na której zbudowana jest CAŁA reszta tego kursu — zarówno kolejne lekcje w tym dziale (operatory, instrukcje warunkowe, pętle), jak i cały dział "Algorytmy i złożoność", gdzie każdy algorytm operuje właśnie na zmiennych tych typów. Na maturze (Arkusz II) poprawne posługiwanie się typami danych jest sprawdzane w praktycznie KAŻDYM zadaniu programistycznym.