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

Lekcja 17: Instrukcje warunkowe - if, else, elif

Podejmowanie decyzji w programach - rozgalezianie kodu

📋 Podstawa programowa: II.1
Pythonelifelseifif/elseinstrukcje warunkowe
00:00
Wprowadzenie
5 min
00:05
Teoria
15 min
00:20
Cwiczenia
15 min
00:35
Podsumowanie
10 min
📚

Teoria

Czym jest instrukcja warunkowa?

Instrukcja warunkowa pozwala programowi podejmowac decyzje - wykonywac rozne fragmenty kodu w zaleznosci od spelnienia warunku. To podstawowy mechanizm sterowania przeplywem programu.

Pamietaj o wciecia! Python uzywa wciec (4 spacje lub 1 tabulator) do oznaczania blokow kodu. Brak wciecia lub nieprawidlowe wciecie spowoduje blad IndentationError.

Instrukcja if

Najprostsza forma - wykonaj kod jesli warunek jest prawdziwy:

wiek = int(input("Podaj wiek: "))
if wiek >= 18:
    print("Jestes pelnoletni/a!")
    print("Mozesz glosowac w wyborach.")

Instrukcja if-else

Dwie alternatywne sciezki - gdy warunek jest prawdziwy LUB falszywy:

liczba = int(input("Podaj liczbe: "))
if liczba % 2 == 0:
    print("Liczba jest parzysta")
else:
    print("Liczba jest nieparzysta")

Instrukcja if-elif-else

Wiele warunkow sprawdzanych po kolei - wykonywany jest PIERWSZY speliony warunek:

ocena = int(input("Podaj ocene (1-6): "))
if ocena == 6:
    print("Celujaco!")
elif ocena == 5:
    print("Bardzo dobrze!")
elif ocena == 4:
    print("Dobrze")
elif ocena == 3:
    print("Dostatecznie")
elif ocena == 2:
    print("Dopuszczajaco")
else:
    print("Niedostatecznie")

Zagniezdzone instrukcje warunkowe

Mozna umieszczac instrukcje if wewnatrz innych instrukcji if:

wiek = int(input("Podaj wiek: "))
if wiek >= 18:
    prawo_jazdy = input("Czy masz prawo jazdy? (tak/nie): ")
    if prawo_jazdy == "tak":
        print("Mozesz prowadzic samochod!")
    else:
        print("Jestes pelnoletni, ale nie masz prawa jazdy.")
else:
    print("Jestes niepelnoletni/a.")

Operator warunkowy (trojargumentowy)

Krotka forma zapisu prostych warunkow w jednej linii:

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

Zadania

Latwe

Zadanie 1: Znak liczby

Napisz program, ktory wczytuje liczbe i wyswietla, czy jest dodatnia, ujemna, czy rowna zeru.

Pokaz przykladowe rozwiazanie
n = float(input("Podaj liczbe: "))
if n > 0:
    print("Liczba jest dodatnia")
elif n < 0:
    print("Liczba jest ujemna")
else:
    print("Liczba jest rowna zeru")
Latwe

Zadanie 2: Kalkulator BMI

Napisz program obliczajacy BMI (masa / wzrost^2). Program powinien wyswietlic kategorie: <18.5 niedowaga, 18.5-24.9 norma, 25-29.9 nadwaga, >=30 otylosc.

Pokaz przykladowe rozwiazanie
masa = float(input("Podaj mase ciala (kg): "))
wzrost = float(input("Podaj wzrost (m): "))

bmi = masa / wzrost ** 2
print(f"Twoje BMI: {bmi:.1f}")

if bmi < 18.5:
    print("Kategoria: niedowaga")
elif bmi < 25:
    print("Kategoria: norma")
elif bmi < 30:
    print("Kategoria: nadwaga")
else:
    print("Kategoria: otylosc")
Srednie

Zadanie 3: Rok przestepny

Napisz program sprawdzajacy, czy dany rok jest przestepny. Rok jest przestepny, jesli dzieli sie przez 4, ale nie przez 100, chyba ze dzieli sie przez 400.

Pokaz przykladowe rozwiazanie
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")
Trudne

Zadanie 4: Trojkat

Napisz program, ktory wczytuje trzy dlugosci bokow i sprawdza: a) czy mozna z nich zbudowac trojkat (warunek trojkata), b) jesli tak - jakiego typu (rownostronny, rownoboczny, roznoramenny, prostokatny).

Pokaz przykladowe rozwiazanie
a = float(input("Podaj bok a: "))
b = float(input("Podaj bok b: "))
c = float(input("Podaj bok c: "))

if a + b > c and a + c > b and b + c > a:
    print("Mozna zbudowac trojkat.")
    if a == b == c:
        print("Trojkat rownostronny")
    elif a == b or b == c or a == c:
        print("Trojkat rownoboczny")
    else:
        print("Trojkat roznoramienny")

    # Sprawdzenie prostokatnosci
    boki = sorted([a, b, c])
    if abs(boki[0]**2 + boki[1]**2 - boki[2]**2) < 0.001:
        print("Trojkat jest prostokatny!")
else:
    print("Nie mozna zbudowac trojkata z tych bokow.")
🎥

Materialy wideo

if, elif, else, boolean - Poradnik Python #4
DooMx
Python - instrukcja warunkowa if .. else ..
Dziwne... u mnie działa - (ScratchSPWZ)
🎧

Podcasty

✔️

Quiz - sprawdz sie!

📜

Podstawa programowa

← Lekcja 16: Wyrazenia arytmetyczne i logiczne Lekcja 18: Instrukcje warunkowe - zadania praktyczne →