Stewdent.eu
▾

Logické operátory

Logické operátory and, or a not kombinujú booleovské výrazy na vytvorenie zložitejších podmienok. Sú základom pre viacpodmienkovú logiku v programoch.

Posledná aktualizácia: 9. decembra 2025

★★☆☆☆ Stupeň 2computingprogramminglogicke-operatoryandornot4 min čítania

Nahlásiť chybu

Jednoduchá podmienka je užitočná, ale v praxi často potrebuješ kombinovať viac podmienok. Napríklad: "Vstup je povolený, ak má návštevník lístok A zároveň je starší ako 12 rokov." Na to slúžia logické operátory.

Tri logické operátory

Python má tri logické operátory:

OperátorPopisPríklad
andPravda, ak SÚ OBA výrazy pravdivéx > 0 and x < 10
orPravda, ak ASPOŇ JEDEN výraz je pravdivýfarba == "červená" or farba == "modrá"
notObracia pravdivostnú hodnotunot je_prázdny

Operátor and

and vráti True iba keď oba operandy sú True:

vek = 16
ma_sucoivanie = True

if vek >= 15 and ma_sucoivanie:
    print("Môžeš sa zúčastniť súťaže.")
else:
    print("Nesplňuješ podmienky.")

Pravdivostná tabuľka pre and:

ABA and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

Operátor or

or vráti True keď aspoň jeden operand je True:

pocasie = "dážď"

if pocasie == "dážď" or pocasie == "sneh":
    print("Vezmi si dáždnik alebo teplé oblečenie.")

Pravdivostná tabuľka pre or:

ABA or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse
Poznámka

or vráti False iba keď SÚ OBA operandy False. Ak si to ťažko pamätáš, mysli na to takto: or hľadá aspoň jednu pravdu — ak ju nájde, výsledok je pravdivý.

Operátor not

not jednoducho obráti hodnotu:

je_vikend = False

if not je_vikend:
    print("Dnes je pracovný deň.")

print(not True)    # False
print(not False)   # True
print(not 0)       # True
print(not 5)       # False

Kombinovanie operátorov

Môžeš kombinovať viacero logických operátorov. Poradie vyhodnotenia: najprv not, potom and, nakoniec or.

vek = 17
ma_preukaz = True
je_unaveny = False

moze_riadit = vek >= 17 and ma_preukaz and not je_unaveny
print(moze_riadit)   # True
Tip

Pri zložitých podmienkach použi zátvorky pre prehľadnosť, aj keď nie sú povinné. (a and b) or c je jasnejšie ako a and b or c.

Skrátené vyhodnotenie

Python vyhodnocuje logické výrazy skrátene:

  • Pri and: ak je prvý operand False, druhý sa vôbec nevyhodnotí (celý výraz je aj tak False).
  • Pri or: ak je prvý operand True, druhý sa vôbec nevyhodnotí (celý výraz je aj tak True).
def skontroluj():
    print("Volám sa!")
    return True

# Táto funkcia sa nikdy nezavolá, lebo False and ... je vždy False
False and skontroluj()

# Táto funkcia sa nikdy nezavolá, lebo True or ... je vždy True
True or skontroluj()

Praktický príklad

heslo = input("Zadaj heslo: ")
meno = input("Zadaj meno: ")

if (meno == "admin" or meno == "root") and heslo == "1234":
    print("Prihlásenie úspešné.")
else:
    print("Nesprávne meno alebo heslo.")
Upozornenie

Nezabudni, že or kombinuje booleovské hodnoty, nie hodnoty samotné. Časté chyby: if farba == "červená" or "modrá": — toto NEFUNGUJE správne, pretože "modrá" je vždy True. Správne: if farba == "červená" or farba == "modrá":.

Cvičné príklady

Aký je výsledok výrazu: True and False or not False?

Zobraziť odpoveď
True. Vyhodnotenie: not False = True; potom True and False = False; nakoniec False or True = True.

Napíš podmienku, ktorá je True iba vtedy, keď je číslo x v rozsahu od 1 do 100 vrátane (teda x >= 1 a zároveň x <= 100).

Zobraziť odpoveď
if x >= 1 and x <= 100: — prípadne skrátený Pythonovský zápis: if 1 <= x <= 100: