
Logické výrazy v Pythonu

Logické výrazy Python vyhodnocuje na hodnoty True (pravda) a False (nepravda). Přesný zápis těchto konstant bývá zdrojem chyb:
- Velké písmeno je důležité:
True je logická konstanta (pravda), kdežto true je název proměnné (která může držet libovolnou hodnotu).
"True" a "False" (tj. názvy logických konstant psány v uvozovkách) jsou obyčejné řetězce, nikoliv konstanty se speciálním významem.
Operátory porovnání
Základním logickým výrazem je porovnání mezi dvěma výrazy (např. porovnání hodnoty proměnné a konstanty). Operátory větší/menší zapisujeme podobně jako v matematice (> a <), „větší/menší nebo rovno“ zapisujeme >= a <=. Test na rovnost provádíme pomocí dvou rovnítek (==). Test na nerovnost zapisujeme !=.
Příklady:
x = 42 # přiřazení do proměnné
x == 42 # test rovnosti
x != 42 # test nerovnosti
x > 42 # je větší
x >= 42 # je větší nebo rovno
Pozor na rozdíl mezi přiřazením do proměnné (jedno rovnítko) a testem na rovnost (dvě rovnítka).
Varování: operátor is
Python obsahuje i další pokročilejší operátory. Mezi záludné patří is, které se zdánlivě chová podobně jako == a jeho použití bývá zdrojem chyb. Operátor is je užitečný nástroj pro pokročilé programátory, začátečníkům silně doporučujeme se mu vyhnout.
Logické spojky
Základní logické výrazy můžeme kombinovat pomocí klasických logických spojek:
not = negace
and = a zároveň (konjunkce) = výsledek je True, pokud jsou oba dva argumenty True
or = nebo (disjunkce) = výsledek je True, pokud je alespoň jeden z argumentů True
a = True # pravda
b = False # nepravda
c = a or b # nebo -> True
c = a and b # a zároveň -> False
c = not a # negace -> False
Pro procvičení významu spojek využijte cvičení Binární křížovka.
Zajímavost: logické spojky v jiných jazycích
V některých programovacích jazycích se logické spojky zapisují pomocí symbolů &, |, !. Na tyto symboly můžete v Pythonu také narazit (např. u množinových operací), ale pro logické spojky se nepoužívají, ty se v Pythonu píší anglickými názvy and, or, not.
Priority logických spojek
Priority operátorů jsou sestupně: not, and, or (tj. nejvyšší prioritu má not). Pro změnu priority či větší čitelnost výrazů můžeme využít závorky.
x = a or b and c # nejdříve se vyhodnotí and, až poté or
x = a or (b and c) # to stejné jako předchozí, jen čitelněji zapsáno
x = (a or b) and c # tentokrát se nejdřív vyhodnotí or
x = not a or b # nejdříve not, až potom or
x = not (a or b) # nejdříve or, potom not
Zavřít