Podmienky sú základom rozhodovacej logiky v programovaní. Umožňujú programu reagovať rôzne podľa situácie — napríklad zobraziť rôznu správu podľa veku používateľa alebo zabrániť neplatnému vstupu.
Príkaz if a else
Základná podmienka má formu if (ak) a voliteľne else (inak). Blok pod if sa vykoná, ak je podmienka pravdivá; blok pod else sa vykoná v opačnom prípade.
vek = 18
if vek >= 18:
print("Si plnoletý/á.")
else:
print("Si maloletý/á.")
Podmienka v príkaze if musí byť výraz, ktorý sa vyhodnotí na True alebo False (booleovská hodnota). Porovnávacie operátory: == (rovná sa), != (nerovná sa), <, >, <=, >=.
Príkaz elif — viac vetiev
Keď potrebujeme otestovať viac možností za sebou, použijeme elif (skratka z „else if"). Vyhodnocovanie prebieha zhora nadol a zastaví sa pri prvej pravdivej podmienke.
znamka = 85
if znamka >= 90:
print("Výborný")
elif znamka >= 75:
print("Chválitebný")
elif znamka >= 60:
print("Dobrý")
elif znamka >= 50:
print("Dostatočný")
else:
print("Nedostatočný")
Booleovské podmienky a logické operátory
Podmienky môžeme kombinovať pomocou logických operátorov:
| Operátor | Význam | Príklad |
|---|---|---|
and | Oba výrazy musia byť True | vek >= 18 and maPrukaz |
or | Aspoň jeden výraz musí byť True | jeAdmin or jeManager |
not | Negácia — obráti hodnotu | not jePrazdny |
heslo = "tajne123"
dlzka = len(heslo)
if dlzka >= 8 and dlzka <= 20:
print("Heslo má správnu dĺžku.")
else:
print("Heslo musí mať 8 až 20 znakov.")
Pozor na zámenu = (priradenie) a == (porovnanie). Zápisnica if x = 5 je syntaktická chyba; správne je if x == 5.
Vnorené podmienky
Podmienky môžeme umiestniť jednu do druhej — hovoríme im vnorené podmienky. Treba však dbať na to, aby kód zostal čitateľný.
if jeStudent:
if vek < 26:
print("Máš nárok na zľavu pre mladých študentov.")
else:
print("Máš nárok na zľavu pre študentov.")
else:
print("Nemáš nárok na zľavu.")
Hlboké vnorenie môže kód zneprehľadniť. Ak je to možné, preferujte použitie elif alebo logických operátorov namiesto viacnásobného vnorenia.
Cvičné príklady
Čo vypíše nasledujúci kód, ak je x = 7? if x > 10: print('veľké') elif x > 5: print('stredné') else: print('malé')