Podejmowanie decyzji w programie, warunki zlozone, zagniezdzone
ð Podstawa programowa: II.1W 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.
Najprostsza forma - wykonaj kod tylko jesli warunek jest prawdziwy:
wiek = 18
if wiek >= 18:
print("Jestes pelnoletni!")
print("Mozesz glosowac w wyborach.")
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!")
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)"
if ocena_proc >= 30 jako pierwszy warunek, prawie kazda ocena go spelni.
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")
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")
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"
# 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")
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"
# 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")
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.
# 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)")
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.
# 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")
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
# 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}'")