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žtotrue
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
= negaceand
= a zároveň (konjunkce) = výsledek jeTrue
, pokud jsou oba dva argumentyTrue
or
= nebo (disjunkce) = výsledek jeTrue
, 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ý 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.
Rozhodovačka
Rychlé procvičování výběrem ze dvou možností.
Logické výrazy v Pythonu (lehké)
zadání: 71
Typicky zabere: 7 min
Logické výrazy v Pythonu (střední)
zadání: 94
Typicky zabere: 10 min
Logické výrazy v Pythonu (těžké)
zadání: 83
Typicky zabere: 13 min
Pexeso
Hledání dvojic, které k sobě patří.
Logické výrazy v Pythonu (střední)
zadání: 4
Typicky zabere: 8 min
Programování v Pythonu
Programování přímo v prohlížeči, s automatickým vyhodnocením správnosti programu.