Späť na hlavnú stránku

Podmienený príkaz v Pythone

V bežnom živote sa stretávame s podmienkami každý deň, napríklad:

Podmienky sú základným stavebným kameňom každého programovacieho jazyka. Umožňujú nám vykonávať rôzne časti kódu v závislosti od splnenia alebo nesplnenia určitých podmienok.

1. Podmienené príkazy v Pythone

Jednoduchý podmienený príkaz: if

if podmienka:
    # kód, ktorý sa vykoná, ak je podmienka True
    príkaz1
    príkaz2
    ...
# kód za podmienkou, ktorý sa vykoná vždy
ďalší príkaz
    
Dôležité: Python používa odsadenie (zvyčajne 4 medzery) na oddelenie blokov kódu, tzv. intendácia. Všetky príkazy, ktoré sa majú vykonať, keď je podmienka splnená, musia byť odsadené. Odsadzovanie sa používa vždy po príkaze, ktorý končí dvojbodkou (odsadením sa určí skupina príkazov, ktorých sa príkaz bude týkať).

Príklad: Test dospelosti (if)

vek = 18
if vek >= 18:
    print("Si dospelý!")
    print("Vstup povolený...")
print("Tento text sa zobrazí vždy.")        

Výstup:

Si dospelý!
Vstup povolený...
Tento text sa zobrazí vždy.

Alebo s iným obsahom premennej vek:
vek = 15
if vek >= 18:
    print("Si dospelý!")
    print("Vstup povolený...")
print("Tento text sa zobrazí vždy.")        

Výstup:

Tento text sa zobrazí vždy.

Podmienený príkaz s alternatívou: if-else

Ak chceme vykonať jednu akciu, keď je podmienka splnená, a inú, keď podmienka splnená nie je:

if podmienka:
    # kód, ktorý sa vykoná, ak je podmienka True
    príkaz1
else:
    # kód, ktorý sa vykoná, ak je podmienka False
    príkaz2
    

Príklad: Test dospelosti (if-else)

vek = 16
if vek >= 18:
    print("Si dospelý!")
    print("Vstup povolený...")
else:
    print("Ešte nie si dospelý.")
    print("Vstup zakázaný...")
print("Tento text sa zobrazí vždy.")        

Výstup:

Ešte nie si dospelý.
Vstup zakázaný...
Tento text sa zobrazí vždy.

Alebo s iným obsahom premennej vek:
vek = 21
if vek >= 18:
    print("Si dospelý!")
    print("Vstup povolený...")
else:
    print("Ešte nie si dospelý.")
    print("Vstup zakázaný...")
print("Tento text sa zobrazí vždy.")        

Výstup:

Si dospelý.
Vstup povolený...
Tento text sa zobrazí vždy.

Vetvenie, viacnásobný podmienený príkaz: if-elif-elif-else

Použijeme, ak potrebujeme otestovať viacero podmienok. Je možné použiť toľko vetiev elif, koľko chceme. Časť kódu za else sa vykoná iba ak ani jedna z uvedených možností v if, elif nebola splnená.

if podmienka1:
    # kód, ktorý sa vykoná, ak je podmienka1 True
    príkaz1
elif podmienka2:
    # kód, ktorý sa vykoná, ak je podmienka1 False a podmienka2 True
    príkaz2
elif podmienka3:
    # kód, ktorý sa vykoná, ak sú podmienka1 a podmienka2 False a podmienka3 True
    príkaz3
elif podmienka4:
    # kód, ktorý sa vykoná, ak sú podmienka1, podmienka2, podmienka3 False a podmienka3 True
    príkaz4
else:
    # kód, ktorý sa vykoná, ak všetky predchádzajúce podmienky sú False
    príkaz5
    

Príklad: Klasifikácia známky (if-elif-else)

body = 70
if body >= 88:
    znamka = "výborný"
elif body >= 73:
    znamka = "chválitebný"
elif body >= 50:
    znamka = "dobrý"
elif body >= 30:
    znamka = "dostatočný"
else:
    znamka = "nedostatočný"
print(f"Tvoja známka je: {znamka}")        

Výstup:

Tvoja známka je: dobrý

2. Logické operátory

Pomocou logických operátorov môžeme kombinovať viacero podmienok:

Operátor Význam Príklad
and logické A (obe podmienky musia byť splnené) a > 5 and a < 10 (a je väčšie ako 5 A zároveň menšie ako 10)
or logické ALEBO (aspoň jedna podmienka musí byť splnená) a < 5 or a > 10 (a je menšie ako 5 ALEBO väčšie ako 10)
not logická negácia (obráti pravdivostnú hodnotu) not a == 5 (a sa nerovná 5)

Príklad 1: Použitie logických operátorov

vek = 25
obcan = True
if vek >= 18 and obcan:
    print("Môžeš voliť!")
else:
    print("Nemôžeš voliť.")
	
teplota = 5
if teplota < 0 or teplota > 30:
    print("Extrémne počasie!")
else:
    print("Bežné počasie.")

dospely = True
if not dospely:
    print("Nie si dospelý.")
else:
    print("Si dospelý.")
        

Výstup:

Môžeš voliť!
Bežné počasie.
Si dospelý.

Príklad 2: Kalkulačka s podmienkami

Napíšte program, ktorý načíta dve čísla a operáciu (+, -, *, /) a vykoná príslušnú matematickú operáciu. Ak používateľ zadá delenie nulou, program by mal zobraziť chybovú správu.

cislo1 = float(input("Zadaj prvé číslo: "))
cislo2 = float(input("Zadaj druhé číslo: "))
operacia = input("Zadaj operáciu (+, -, *, /): ")

if operacia == "+":
    vysledok = cislo1 + cislo2
    print(f"{cislo1} + {cislo2} = {vysledok}")
elif operacia == "-":
    vysledok = cislo1 - cislo2
    print(f"{cislo1} - {cislo2} = {vysledok}")
elif operacia == "*":
    vysledok = cislo1 * cislo2
    print(f"{cislo1} * {cislo2} = {vysledok}")
elif operacia == "/":
    if cislo2 == 0:
        print("Chyba: Delenie nulou nie je možné!")
    else:
        vysledok = cislo1 / cislo2
        print(f"{cislo1} / {cislo2} = {vysledok}")
else:
    print("Neplatná operácia! Použi +, -, * alebo /.")
            

Úlohy na vlastnú prácu

Úloha 1: BMI kalkulačka

Napíšte program, ktorý vypočíta index telesnej hmotnosti (BMI) a určí kategóriu podľa nasledujúcich pravidiel:

BMI sa vypočíta ako hmotnosť (kg) delená druhou mocninou výšky (m²).

Pomôcka:
Od užívateľa zistite jeho hmotnosť v kilogramoch (celé číslo) a výšku v metroch (desatinné číslo). Po výpočte BMI rozlíšte rôzne podmienky a podľa toho vypíšte stav.

Úloha 2: Určenie kvadrantu bodu v rovine

Napíšte program, ktorý načíta súradnice bodu (x, y) a určí, v ktorom kvadrante sa bod nachádza. Nezabudnite na prípady, keď bod leží na osiach.

Pomôcka:
Najprv načítajte x-ovú a y-ovú súradnicu bodu. Ak má bod obe súradnice kladné, je z prvého kvadrantu, ak má prvú zápornú a druhú kladnú tak je z druhého kvadrantu atď. Ak bod leží na y-ovej osi tak má x-ovú súradnicu nulovú. Nezabudnite v programe ošetriť i tu nespomenuté ďalšie možnosti.

Úloha 3: Vylepšený ChatBot

Vylepšite ChatBota o otázky, na ktoré si môže užívateľ zvoliť z ponúkaných možností na výlet. Napríklad sa opýta, či užívateľ preferuje prírodu alebo mesto. Ak si zvolí prírodu, reaguje vetou: Super, aj ja mám rád prírodu!. Ak si zvolí mesto odpovie: Rozumiem, máš radšej civilizáciu! Ak odpovie niečím iným, reaguje neurčito: Aj to je jedna možnosť.

Rozšírenie:
1. Úroveň: Úvodná otázka
👉 Chatbot: Ahoj! Chcel by si odporučiť destináciu na výlet? Preferuješ skôr prírodu alebo mesto?

Ak používateľ odpovie „prírodu“ → Prechod na úroveň 2A
Ak používateľ odpovie „mesto“ → Prechod na úroveň 2B

2A. Úroveň: Výber aktivity v prírode
👉 Chatbot: Super! Máš radšej hory, lesy alebo vodné plochy (napr. jazerá, rieky)?

Ak používateľ odpovie „hory“ → Prechod na úroveň 3A1
Ak používateľ odpovie „lesy“ → Prechod na úroveň 3A2
Ak používateľ odpovie „vodné plochy“ → Prechod na úroveň 3A3

2B. Úroveň: Výber typu mesta
👉 Chatbot: Rozumiem! Hľadáš historické mesto, moderné veľkomesto alebo niečo romantické?

Ak používateľ odpovie „historické mesto“ → Prechod na úroveň 3B1
Ak používateľ odpovie „moderné veľkomesto“ → Prechod na úroveň 3B2
Ak používateľ odpovie „romantické mesto“ → Prechod na úroveň 3B3

3A. Úroveň: Odporúčanie miesta v prírode
3A1 (Hory) 👉 Chatbot: Skús Vysoké Tatry! Ponúkajú nádherné výhľady, túry a čerstvý horský vzduch.
3A2 (Lesy) 👉 Chatbot: Mohol by sa ti páčiť Slovenský raj – krásne tiesňavy, rebríky a dobrodružné chodníky!
3A3 (Vodné plochy) 👉 Chatbot: Jazero Štrbské pleso je krásne miesto na oddych aj športové aktivity.

3B. Úroveň: Odporúčanie mesta
3B1 (Historické mesto) 👉 Chatbot: Bardejov je skvelá voľba! Krásne zachované historické centrum a príjemná atmosféra.
3B2 (Moderné veľkomesto) 👉 Chatbot: Bratislava je dynamická a ponúka skvelé bary, reštaurácie a kultúrne podujatia.
3B3 (Romantické mesto) 👉 Chatbot: Český Krumlov je nádherný a ideálny na romantické prechádzky.

Overenie vedomostí

Test - Podmienky v Pythone

1. Ktorým slovom začína jednoduchá podmienka v Pythone?

a) when
b) if
c) then
d) condition

2. Ako sa v Pythone označuje operátor rovnosti?

a) =
b) ==
c) <>
d) equals

3. Ktorý logický operátor použijeme, ak potrebujeme, aby boli splnené obe podmienky?

a) or
b) xor
c) both
d) and

4. Čo sa stane, ak podmienka v príkaze if je vyhodnotená ako False?

a) Vykoná sa kód v bloku if
b) Vykoná sa kód v bloku else, ak existuje, inak sa pokračuje za podmienkou
c) Program sa ukončí s chybou
d) Vykoná sa kód v bloku elif

5. Aký je výsledok výrazu: (1 > 2 or 3 > 2) and 5 => 5

a) True
b) False
c) Error
d) None

6. Ako sa v Pythone píše blok "inak ak" (else if)?

a) elseif
b) else if
c) elif
d) otherwise

7. Ako sa v Pythone oddeľujú bloky kódu v podmienkach?

a) Pomocou zložených zátvoriek { }
b) Pomocou kľúčových slov begin a end
c) Pomocou odsadenia (indentácie)
d) Pomocou bodkočiarky ;

8. Aký je výsledok výrazu: not (5 > 10) or 100 != 100

a) True
b) False
c) Error
d) None

9. Ktorý z nasledujúcich výrazov je syntakticky správny?

a) if (x == 5) { print("Rovné 5") }
b) if x == 5: print("Rovné 5")
c) if x == 5 then print("Rovné 5")
d) if x == 5 print("Rovné 5")

10. Aký bude výstup nasledujúceho kódu?

x = 10
if x > 5:
    print("A")
elif x > 8:
    print("B")
else:
    print("C")
            
a) A
b) A B
c) B
d) C


Späť na hlavnú stránku