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:
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
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ý 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.
Zavřít