Stewdent.eu
▾

Booleovské výrazy

Booleovský výraz je výraz, ktorý sa vyhodnotí buď ako True (pravda) alebo False (nepravda). Sú základom všetkých podmienok a rozhodnutí v programoch.

Posledná aktualizácia: 1. januára 2026

★★☆☆☆ Stupeň 2computingprogrammingbooleanpodmienkypravda-nepravda3 min čítania

Nahlásiť chybu

Každé rozhodnutie v programe sa nakoniec zredukuje na jednoduchú otázku: áno alebo nie, pravda alebo nepravda? Booleovský výraz je výraz, ktorý dáva práve takúto odpoveď.

Booleovský typ

Python má špeciálny typ bool, ktorý má len dve hodnoty:

je_student = True
ma_auto = False

print(type(True))   # <class 'bool'>
Poznámka

Booleovský typ je pomenovaný po matematikovi Georgeovi Booleovi (1815–1864), ktorý vyvinul algebru logiky — matematický systém pre prácu s hodnotami pravda/nepravda.

Porovnávacie výrazy

Porovnávanie dvoch hodnôt vždy vráti booleovskú hodnotu:

print(5 > 3)          # True
print(10 == 10)       # True
print(7 != 7)         # False
print(3 >= 5)         # False
print("ahoj" == "ahoj")  # True
print("abc" < "abd")     # True (lexikografické porovnanie)

Pravdivosť a nepravdivosť hodnôt

V Pythone je každá hodnota buď "pravdivá" (truthy) alebo "nepravdivá" (falsy). Tieto hodnoty sú vždy nepravdivé:

print(bool(0))        # False
print(bool(0.0))      # False
print(bool(""))       # False — prázdny reťazec
print(bool([]))       # False — prázdny zoznam
print(bool(None))     # False

Všetky ostatné hodnoty sú pravdivé:

print(bool(1))        # True
print(bool(-5))       # True — akékoľvek nenulové číslo
print(bool("a"))      # True — neprázdny reťazec
print(bool([0]))      # True — neprázdny zoznam
Tip

Toto sa hodí pri kontrole, či je zoznam prázdny: if zoznam: je rovnaké ako if len(zoznam) > 0:, ale kratšie.

Booleovské výrazy ako podmienky

Kdekoľvek Python čaká podmienku, môžeš použiť ľubovoľný výraz — Python sám rozhodne o jeho pravdivosti:

meno = input("Zadaj meno: ")

if meno:          # True ak meno nie je prázdny reťazec
    print(f"Ahoj, {meno}!")
else:
    print("Nezadal si meno.")

Porovnávanie reťazcov

Reťazce sa porovnávajú znakovo podľa abecedy (lexikograficky):

print("adam" < "bob")     # True — 'a' je pred 'b'
print("Z" < "a")          # True — veľké písmená sú pred malými v ASCII
print("abc" == "abc")     # True
print("Python" != "python")  # True — záleží na veľkosti písmen
Upozornenie

Porovnávanie reťazcov je citlivé na veľkosť písmen. "Ahoj" != "ahoj" je True. Ak chceš porovnávať bez ohľadu na veľkosť, konvertuj oba reťazce na malé písmená: "Ahoj".lower() == "ahoj".lower().

Premenné ako booleovské výrazy

Výsledok porovnania môžeš uložiť do premennej:

vek = 16
je_plnolety = vek >= 18        # False
mozem_riadit = vek >= 17       # False (v SR je min. 17 s inštruktorom)

print(je_plnolety)             # False
print(mozem_riadit)            # False

Identita verzus rovnosť

== porovnáva hodnoty, is porovnáva identitu (či ide o ten istý objekt v pamäti):

x = [1, 2, 3]
y = [1, 2, 3]
z = x

print(x == y)   # True — rovnaký obsah
print(x is y)   # False — rôzne objekty v pamäti
print(x is z)   # True — z ukazuje na ten istý objekt ako x

Cvičné príklady

Aká je hodnota výrazu bool(0) a bool('') a prečo?

Zobraziť odpoveď
Oba sú False. V Pythone je nula (0) a prázdny reťazec ('') nepravdivé (falsy) hodnoty. Reprezentujú 'nič' alebo 'prázdno', čo sa v logickom kontexte považuje za nepravdu.

Čo vypíše tento kód? zoznam = []; if zoznam: print('nie je prázdny'); else: print('je prázdny')

Zobraziť odpoveď
Vypíše 'je prázdny'. Prázdny zoznam [] má hodnotu False v booleovskom kontexte, takže podmienka if zoznam: nie je splnená.