Zmienne, typy danych, operatory, instrukcje warunkowe — fundament wszystkiego.
Zmienna to nazwane miejsce w pamięci, w którym przechowujesz wartość. W Pythonie nie deklarujesz typu — Python sam go rozpoznaje w momencie przypisania.
=wiek ≠ Wiekimie = "Kasia"
wiek = 17
wzrost = 1.68
zdana = False
# Wielokrotne przypisanie
x = y = z = 0
# Zamiana wartości (bez zmiennej tymczasowej)
a = 10
b = 20
a, b = b, a
print(a, b) # 20 10
Python ma kilka podstawowych typów danych. Typ zmiennej możesz sprawdzić funkcją type().
| Typ | Przykład | Opis |
|---|---|---|
int | 42 | Liczba całkowita |
float | 3.14 | Liczba zmiennoprzecinkowa |
str | "Ala" | Ciąg znaków (tekst) |
bool | True / False | Wartość logiczna |
NoneType | None | Brak wartości |
int("5") → 5 ·
float("3.14") → 3.14 ·
str(42) → "42" ·
bool(0) → False
x = 10
y = 3.5
tekst = "Python"
flaga = True
print(type(x)) # <class 'int'>
print(type(y)) # <class 'float'>
print(type(tekst)) # <class 'str'>
print(type(flaga)) # <class 'bool'>
# Konwersja — wczytanie liczby od użytkownika
wiek = int(input("Podaj wiek: "))
cena = float(input("Podaj cenę: "))
# Sprawdzenie po konwersji
print(type(wiek)) # <class 'int'>
| Op. | Działanie | Wynik |
|---|---|---|
+ | dodawanie | 7+3 = 10 |
- | odejmowanie | 7-3 = 4 |
* | mnożenie | 7*3 = 21 |
/ | dzielenie | 7/2 = 3.5 |
// | dzielenie całk. | 7//2 = 3 |
% | reszta z dz. | 7%2 = 1 |
** | potęgowanie | 2**8 = 256 |
| Op. | Znaczenie |
|---|---|
== | równe |
!= | różne |
> | większe |
< | mniejsze |
>= | większe lub równe |
<= | mniejsze lub równe |
| Op. | Znaczenie |
|---|---|
and | oba warunki prawdziwe |
or | przynajmniej jeden |
not | negacja |
x += 5 | x = x + 5 |
x -= 5 | x = x - 5 |
x *= 2 | x = x * 2 |
x //= 2 | x = x // 2 |
Tekst w Pythonie to obiekt typu str. Możesz go tworzyć w apostrofach lub cudzysłowach.
+"ha" * 3 → "hahaha"f"Mam {wiek} lat"tekst[0] — pierwszy znaklen(tekst)tekst[1:4]len(tekst) - 1, lub krócej: tekst[-1].
imie = "Kasia"
nazwisko = "Nowak"
# Konkatenacja
pelne = imie + " " + nazwisko
print(pelne) # Kasia Nowak
# f-string
wiek = 17
info = f"Mam {wiek} lat i {wiek * 365} dni."
print(info)
# Indeksowanie i slice
print(imie[0]) # K
print(imie[-1]) # a
print(imie[1:3]) # as
print(imie[::-1]) # aisaK (odwrócenie)
# Metody
print(imie.upper()) # KASIA
print(imie.lower()) # kasia
print(pelne.split()) # ['Kasia', 'Nowak']
print(" spacje ".strip()) # 'spacje'
Instrukcja warunkowa pozwala wykonać różny kod w zależności od tego, czy warunek jest prawdziwy (True) czy fałszywy (False).
if — sprawdza pierwszy warunekelif — kolejny warunek (można dodać wiele)else — wykonuje się, gdy żaden warunek nie był spełniony0, 0.0, "", [], None, False — wszystkie są traktowane jako fałsz w warunku.
wynik = "TAK" if warunek else "NIE"
ocena = int(input("Podaj ocenę (1-6): "))
if ocena == 6:
print("Celujący — świetnie!")
elif ocena == 5:
print("Bardzo dobry!")
elif ocena >= 3:
print("Zaliczone.")
elif ocena == 2:
print("Niedostatecznie.")
else:
print("Nieprawidłowa ocena.")
# Zagnieżdżone warunki
wiek = int(input("Wiek: "))
if wiek >= 18:
prawo_jazdy = input("Masz prawo jazdy? (t/n): ")
if prawo_jazdy == "t":
print("Możesz prowadzić.")
else:
print("Musisz zdać egzamin.")
else:
print("Za młody/a na prawo jazdy.")
input() zawsze zwraca tekst (str) — jeśli potrzebujesz liczby, musisz dokonać konwersji.
print() wypisuje wartości na ekran. Możesz sterować separatorem i końcem linii.
print(a, b, sep=", ") — separator między wartościamiprint("tekst", end="") — bez nowej linii na końcuprint(f"{zmienna:.2f}") — formatowanie liczb (2 miejsca po przecinku)# Wczytanie i konwersja
imie = input("Podaj imię: ")
wiek = int(input("Podaj wiek: "))
wzrost = float(input("Podaj wzrost (m): "))
# Różne sposoby wypisywania
print("Cześć,", imie)
print(f"Masz {wiek} lat i {wzrost} m wzrostu.")
print("Wzrost: {:.0f} cm".format(wzrost * 100))
# Kilka wartości w jednej linii
print(imie, wiek, wzrost, sep=" | ")
# Kasia | 17 | 1.68
# Bez nowej linii
print("Ładowanie", end="")
print("...", end="\n")
Wczytaj od użytkownika wagę (kg) i wzrost (m). Oblicz BMI według wzoru: BMI = waga / wzrost². Wypisz wynik z dwoma miejscami po przecinku i kategorię (niedowaga <18.5, norma 18.5–24.9, nadwaga ≥25).
waga = float(input("Podaj wagę (kg): "))
wzrost = float(input("Podaj wzrost (m): "))
bmi = waga / wzrost ** 2
print(f"Twoje BMI: {bmi:.2f}")
if bmi < 18.5:
print("Kategoria: niedowaga")
elif bmi < 25:
print("Kategoria: norma")
elif bmi < 30:
print("Kategoria: nadwaga")
else:
print("Kategoria: otyłość")
float(input(...)) — input() zwraca tekst, float() zamienia go na liczbę z przecinkiem. Wzrost musi być w metrach (np. 1.68), nie centymetrach.
wzrost ** 2 to wzrost do potęgi 2. Python liczy potęgowanie przed dzieleniem — kolejność działań jest zachowana.
{bmi:.2f} w f-stringu oznacza: wyświetl zmienną bmi jako liczbę zmiennoprzecinkową z dokładnie 2 miejscami po przecinku.
bmi < 18.5 jest fałszywy, wiemy że BMI ≥ 18.5 — kolejny elif bmi < 25 oznacza więc zakres 18.5–24.9.
Wczytaj liczbę całkowitą. Wypisz, czy jest parzysta czy nieparzysta, a następnie czy jest dodatnia, ujemna czy równa zero.
liczba = int(input("Podaj liczbę całkowitą: "))
# Parzystość
if liczba % 2 == 0:
print("Liczba jest parzysta.")
else:
print("Liczba jest nieparzysta.")
# Znak liczby
if liczba > 0:
print("Liczba jest dodatnia.")
elif liczba < 0:
print("Liczba jest ujemna.")
else:
print("Liczba jest równa zero.")
%liczba % 2 zwraca resztę z dzielenia przez 2. Jeśli reszta to 0 — liczba jest parzysta. To klasyczny test parzystości — zapamiętaj go na egzamin.
if (nie elif), bo to są dwa niezależne pytania — jedno o parzystość, drugie o znak. Gdybyś użyła elif, drugi warunek nie byłby sprawdzany po spełnieniu pierwszego.
else dla znaku obsługuje dokładnie ten jeden przypadek.
Wczytaj kwotę rachunku i liczbę osób przy stole. Oblicz napiwek 15% i podziel go równo między osoby. Wypisz: łączny napiwek i napiwek na osobę — oba z dokładnością do 2 miejsc po przecinku. Jeśli liczba osób wynosi 0 lub mniej, wypisz komunikat o błędzie.
rachunek = float(input("Kwota rachunku (zł): "))
osoby = int(input("Liczba osób: "))
if osoby <= 0:
print("Błąd: liczba osób musi być większa od 0.")
else:
napiwek = rachunek * 0.15
napiwek_osoba = napiwek / osoby
print(f"Łączny napiwek: {napiwek:.2f} zł")
print(f"Napiwek na osobę: {napiwek_osoba:.2f} zł")
ZeroDivisionError) — warunek osoby <= 0 go zapobiega.
rachunek * 0.15 — procent zapisujemy jako ułamek dziesiętny. 15% = 15/100 = 0.15. Mnożenie jest prostsze i szybsze niż rachunek / 100 * 15.
osoby operatorem / (nie //!) — chcemy wynik z przecinkiem, nie zaokrąglony w dół.
{napiwek_osoba:.2f} to tylko kosmetyka — wyrównują wynik do jednej kolumny. Na egzaminie nie jest wymagane, ale wygląda profesjonalnie.
Wczytaj temperaturę i jednostkę (C lub F). Jeśli podano Celsjusze, zamień na Fahrenheity i odwrotnie. Wzory: F = C × 9/5 + 32 oraz C = (F − 32) × 5/9. Jeśli jednostka jest inna niż C lub F — wypisz błąd.
temp = float(input("Podaj temperaturę: "))
jednostka = input("Jednostka (C/F): ").strip().upper()
if jednostka == "C":
wynik = temp * 9 / 5 + 32
print(f"{temp}°C = {wynik:.1f}°F")
elif jednostka == "F":
wynik = (temp - 32) * 5 / 9
print(f"{temp}°F = {wynik:.1f}°C")
else:
print(f"Błąd: nieznana jednostka '{jednostka}'.")
print("Podaj C (Celsjusze) lub F (Fahrenheity).")
.strip().upper()strip() usuwa białe znaki z początku i końca (np. spację przypadkowo wpisaną przez użytkownika). upper() zamienia na wielkie litery — dzięki temu "c", "C", " c " — wszystkie zostaną poprawnie rozpoznane.
temp * 9 / 5 + 32 — Python liczy od lewej: najpierw temp * 9, potem / 5, na końcu + 32. Wynik jest poprawny. Możesz też napisać temp * (9/5) + 32 dla czytelności.
:.1felse informuje użytkownika co poszło nie tak i co powinien wpisać. Dobry komunikat błędu to część dobrego programu.
Rozwiąż poniższe zadania samodzielnie — teoria i przykłady wyżej dają Ci wszystko, czego potrzebujesz.
Sekunda na czas
Wczytaj liczbę sekund (całkowitą). Wypisz ile to godzin, minut i sekund. Np. dla 3723 sekund: 1 godz. 2 min. 3 sek.
// i %Pole i obwód prostokąta
Wczytaj długość i szerokość prostokąta. Oblicz i wypisz pole oraz obwód. Sprawdź czy podane wartości są dodatnie.
ifRok przestępny
Wczytaj rok. Wypisz, czy jest przestępny. Rok jest przestępny gdy: podzielny przez 4, ale nie przez 100 — lub podzielny przez 400.
and, or, %Kalkulator ocen
Wczytaj trzy oceny (liczby zmiennoprzecinkowe). Oblicz średnią. Wypisz średnię i słowną ocenę końcową (według skali szkolnej 1–6).
elif ze skalą procentowąOdwrócony napis
Wczytaj słowo. Wypisz je odwrócone, sprawdź czy jest palindromem (czyta się tak samo od przodu i od tyłu) i wypisz liczbę liter.
[::-1], len(), .lower()Kalkulator podatkowy
Wczytaj roczny dochód brutto. Oblicz podatek według progów: do 120 000 zł — 12%, powyżej — 32% od nadwyżki. Wypisz kwotę podatku i dochód netto.
if/else, formatowanie z :.2f