Liceum Klasa I 45 minut PP: II.1 | s. 343

Lekcja 10: Instrukcje warunkowe - if, else, elif - rozwiazywanie problemow

Podejmowanie decyzji w programie, warunki zlozone, zagniezdzone

📋 Podstawa programowa: II.1
Pythonif/elseinstrukcje warunkowerozgalezieniarozwiazywanie problemow
00:00
Wprowadzenie
3 min
00:03
Teoria
18 min
00:21
Cwiczenia
19 min
00:40
Podsumowanie
5 min
📚

Teoria

Po co sa instrukcje warunkowe?

W prawdziwym zyciu ciagle podejmujemy decyzje: "Jesli pada deszcz, wezme parasol. W przeciwnym razie, wezme okulary przeciwsloneczne." Programy tez musza podejmowac decyzje w zaleznosci od danych - do tego sluza instrukcje warunkowe.

Instrukcja if (jesli)

Najprostsza forma - wykonaj kod tylko jesli warunek jest prawdziwy:

wiek = 18

if wiek >= 18:
    print("Jestes pelnoletni!")
    print("Mozesz glosowac w wyborach.")
WAZNE: Wciecia (indentacja)! W Pythonie blok kodu wewnatrz if oznacza sie wcieciem (4 spacje lub 1 Tab). Wszystkie linie z takim samym wcieciem naleza do tego samego bloku. To nie jest opcjonalne - to czesc skladni Pythona!

Instrukcja if-else (jesli-w przeciwnym razie)

Pozwala wykonac jeden blok kodu, gdy warunek jest prawdziwy, i inny blok, gdy jest falszywy:

temperatura = 25

if temperatura > 30:
    print("Jest bardzo goraco!")
    print("Pamietaj o nawodnieniu.")
else:
    print("Temperatura jest OK.")
    print("Milego dnia!")

Instrukcja if-elif-else (jesli-jesli jeszcze-w przeciwnym razie)

Pozwala sprawdzic wiele warunkow po kolei. Python sprawdza warunki od gory i wykonuje pierwszy pasujacy blok:

ocena_proc = 85

if ocena_proc >= 90:
    print("Ocena: celujacy (6)")
elif ocena_proc >= 75:
    print("Ocena: bardzo dobry (5)")
elif ocena_proc >= 60:
    print("Ocena: dobry (4)")
elif ocena_proc >= 45:
    print("Ocena: dostateczny (3)")
elif ocena_proc >= 30:
    print("Ocena: dopuszczajacy (2)")
else:
    print("Ocena: niedostateczny (1)")

# Wynik: "Ocena: bardzo dobry (5)"
Uwaga: Kolejnosc warunkow elif ma znaczenie! Python wykonuje PIERWSZY pasujacy blok i pomija reszta. Jesli napiszesz if ocena_proc >= 30 jako pierwszy warunek, prawie kazda ocena go spelni.

Warunki zlozone

Mozna laczyc wiele warunkow za pomoca operatorow logicznych and, or, not:

wiek = 17
ma_prawo_jazdy = True
jest_trzezwy = True

# Wszystkie warunki musza byc spelnione (and)
if wiek >= 18 and ma_prawo_jazdy and jest_trzezwy:
    print("Moze prowadzic samochod")
else:
    print("Nie moze prowadzic samochodu")

# Przynajmniej jeden warunek (or)
dzien = "sobota"
if dzien == "sobota" or dzien == "niedziela":
    print("Weekend!")
else:
    print("Dzien roboczy")

# Sprawdzanie zakresu (Python pozwala na lancuchowanie)
temperatura = 22
if 18 <= temperatura <= 25:
    print("Przyjemna temperatura")

Instrukcje zagniezdzone

Mozna umieszczac instrukcje warunkowe wewnatrz innych instrukcji warunkowych:

wiek = 20
bilet = "ulgowy"

if wiek >= 18:
    print("Osoba dorosla")
    if bilet == "ulgowy":
        print("Sprawdz, czy masz uprawnienia do biletu ulgowego!")
    else:
        print("Bilet normalny - OK")
else:
    print("Osoba niepelnoletnia")
    if wiek < 4:
        print("Przejazd darmowy!")
    else:
        print("Bilet ulgowy przysluiguje")

Operator trojargumentowy (ternary)

Python pozwala na skrocony zapis prostych warunkow w jednej linii:

wiek = 20
status = "pelnoletni" if wiek >= 18 else "niepelnoletni"
print(status)  # "pelnoletni"

# To samo co:
if wiek >= 18:
    status = "pelnoletni"
else:
    status = "niepelnoletni"

Praktyczne przyklady

# Przyklad 1: Rok przestepny
rok = int(input("Podaj rok: "))
if (rok % 4 == 0 and rok % 100 != 0) or (rok % 400 == 0):
    print(f"Rok {rok} jest przestepny")
else:
    print(f"Rok {rok} nie jest przestepny")

# Przyklad 2: Kalkulator BMI
waga = float(input("Podaj wage (kg): "))
wzrost = float(input("Podaj wzrost (m): "))
bmi = waga / (wzrost ** 2)

print(f"Twoje BMI: {bmi:.1f}")
if bmi < 18.5:
    print("Niedowaga")
elif bmi < 25:
    print("Waga prawidlowa")
elif bmi < 30:
    print("Nadwaga")
else:
    print("Otylosc")
✏️

Zadania

Latwe

Zadanie 1: Kalkulator BMI

Napisz program, ktory pobiera wage (kg) i wzrost (m), oblicza wskaznik BMI i wyswietla kategorie:
- BMI < 18.5: "Niedowaga"
- 18.5 <= BMI < 25: "Waga prawidlowa"
- 25 <= BMI < 30: "Nadwaga"
- BMI >= 30: "Otylosc"

Pokaz przykladowe rozwiazanie
# Kalkulator BMI
waga = float(input("Podaj wage w kg: "))
wzrost = float(input("Podaj wzrost w metrach: "))

bmi = waga / (wzrost ** 2)
print(f"\nTwoje BMI wynosi: {bmi:.1f}")

if bmi < 18.5:
    print("Kategoria: Niedowaga")
    print("Zalecenie: Skonsultuj sie z lekarzem")
elif bmi < 25:
    print("Kategoria: Waga prawidlowa")
    print("Tak trzymaj!")
elif bmi < 30:
    print("Kategoria: Nadwaga")
    print("Zalecenie: Wiecej ruchu i zdrowa dieta")
else:
    print("Kategoria: Otylosc")
    print("Zalecenie: Koniecznie skonsultuj sie z lekarzem")
Latwe

Zadanie 2: Sprawdzacz ocen

Napisz program, ktory pobiera ocene (1-6) i wyswietla jej nazwe slowna (niedostateczny, dopuszczajacy, dostateczny, dobry, bardzo dobry, celujacy). Jesli uzytkownik poda liczbe spoza zakresu 1-6, wyswietl komunikat o bledzie.

Pokaz przykladowe rozwiazanie
# Sprawdzacz ocen
ocena = int(input("Podaj ocene (1-6): "))

if ocena == 6:
    print("Celujacy - wspaniale!")
elif ocena == 5:
    print("Bardzo dobry - brawo!")
elif ocena == 4:
    print("Dobry - dobrze!")
elif ocena == 3:
    print("Dostateczny - moze byc")
elif ocena == 2:
    print("Dopuszczajacy - popracuj nad tym")
elif ocena == 1:
    print("Niedostateczny - musisz sie poprawic!")
else:
    print(f"Blad! {ocena} nie jest prawidlowa ocena (1-6)")
Srednie

Zadanie 3: Sprawdzacz wieku

Napisz program, ktory pobiera wiek i wyswietla informacje:
- < 0: "Blad! Wiek nie moze byc ujemny"
- 0-3: "Niemowle"
- 4-6: "Przedszkolak"
- 7-12: "Uczen szkoly podstawowej"
- 13-15: "Uczen gimnazjum/8-letniej SP"
- 16-18: "Uczen liceum"
- 19-25: "Student lub mlody dorosly"
- 26-65: "Dorosly"
- > 65: "Senior"
Dodatkowo wyswietl, czy osoba jest pelnoletnia i czy moze glosowac.

Pokaz przykladowe rozwiazanie
# Sprawdzacz wieku
wiek = int(input("Podaj wiek: "))

if wiek < 0:
    print("Blad! Wiek nie moze byc ujemny.")
else:
    # Kategoria wiekowa
    if wiek <= 3:
        kategoria = "Niemowle"
    elif wiek <= 6:
        kategoria = "Przedszkolak"
    elif wiek <= 12:
        kategoria = "Uczen szkoly podstawowej"
    elif wiek <= 15:
        kategoria = "Uczen 8-letniej SP"
    elif wiek <= 18:
        kategoria = "Uczen liceum"
    elif wiek <= 25:
        kategoria = "Student lub mlody dorosly"
    elif wiek <= 65:
        kategoria = "Dorosly"
    else:
        kategoria = "Senior"

    print(f"\nWiek: {wiek} lat")
    print(f"Kategoria: {kategoria}")

    # Pelnoletnosc
    pelnoletni = "TAK" if wiek >= 18 else "NIE"
    print(f"Pelnoletni: {pelnoletni}")

    # Prawo glosu
    moze_glosowac = "TAK" if wiek >= 18 else "NIE"
    print(f"Moze glosowac: {moze_glosowac}")

    # Prawo jazdy
    if wiek >= 18:
        print("Moze miec prawo jazdy kat. B")
    elif wiek >= 16:
        print("Moze miec prawo jazdy kat. AM")
    else:
        print("Za mlody na prawo jazdy")
Trudne

Zadanie 4: Kalkulator z menu

Napisz program-kalkulator, ktory:
1. Wyswietla menu: [+] Dodawanie, [-] Odejmowanie, [*] Mnozenie, [/] Dzielenie, [**] Potegowanie, [%] Reszta z dzielenia
2. Pobiera wybor operacji
3. Pobiera dwie liczby
4. Wyswietla wynik
5. Obsluguje dzielenie przez zero i nieprawidlowy wybor

Pokaz przykladowe rozwiazanie
# Kalkulator z menu
print("=== KALKULATOR ===")
print("[+]  Dodawanie")
print("[-]  Odejmowanie")
print("[*]  Mnozenie")
print("[/]  Dzielenie")
print("[**] Potegowanie")
print("[%]  Reszta z dzielenia")
print("==================\n")

operacja = input("Wybierz operacje: ")
a = float(input("Podaj pierwsza liczbe: "))
b = float(input("Podaj druga liczbe: "))

if operacja == "+":
    wynik = a + b
    print(f"\n{a} + {b} = {wynik}")
elif operacja == "-":
    wynik = a - b
    print(f"\n{a} - {b} = {wynik}")
elif operacja == "*":
    wynik = a * b
    print(f"\n{a} * {b} = {wynik}")
elif operacja == "/":
    if b == 0:
        print("\nBlad! Nie mozna dzielic przez zero!")
    else:
        wynik = a / b
        print(f"\n{a} / {b} = {wynik:.4f}")
        print(f"Dzielenie calkowite: {int(a) // int(b)}")
        print(f"Reszta: {int(a) % int(b)}")
elif operacja == "**":
    wynik = a ** b
    print(f"\n{a} ** {b} = {wynik}")
elif operacja == "%":
    if b == 0:
        print("\nBlad! Nie mozna obliczyc reszty z dzielenia przez zero!")
    else:
        wynik = a % b
        print(f"\n{a} % {b} = {wynik}")
else:
    print(f"\nNieznana operacja: '{operacja}'")
🎥

Materialy wideo

#3 Instrukcje warunkowe | Python
mini programowanie
Czym są Instrukcje Warunkowe? - Programowanie z Lego
Losowy Maciek
🎧

Podcasty

✔️

Quiz - sprawdz sie!

📜

Podstawa programowa

← Lekcja 9: Wyrazenia arytmetyczne i logiczne Lekcja 11: Petle →