Nadřazené | Proměnné a výrazy |
Předcházející | Proměnné a číselné výrazy v Pythonu, Logické spojky a pravdivostní tabulky |
Navazující | Podmíněný příkaz (if) 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ž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).
Python obsahuje i další pokročilejší operátory. Mezi záludné patří is
, které se 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
Pro procvičení významu spojek využijte cvičení Binární křížovka.
V některých programovacích jazycích se logické spojky zapisují pomocí symbolů &
, |
, !
. V Pythonu se tyto symboly nepoužívají, logické spojky se píší anglickými slovy:
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
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é)
71 zadání
Typicky zabere: 8 min
Ukázka
Jsou tyto výrazy ekvivalentní?(x > y) and (s >= t)
x > y and s >= t
Vyhodnoťte:not False and False
Jak v Pythonu zapisujeme logickou spojku 'nebo' (disjunkce)?
Logické výrazy v Pythonu (střední)
94 zadání
Typicky zabere: 10 min
Ukázka
Jsou tyto výrazy ekvivalentní?not (x >= 2 and y >= 3)
x < 2 or y < 3
Pokud je a
pravdivostní proměnná, je výraz a != True
ekvivalentní výrazu not a
?Lze výraz not x == y
zjednodušit na x != y
?
Logické výrazy v Pythonu (těžké)
83 zadání
Typicky zabere: 14 min
Ukázka
Která operace ma vyšší prioritu?Jsou tyto výrazy ekvivalentní?(not a) == (b and c)
not a == b and c
Jsou tyto výrazy ekvivalentní?(x > 10) == False
x <= 10

Pexeso
Hledání dvojic, které k sobě patří.

Logické výrazy v Pythonu (střední)
4 zadání
Typicky zabere: 8 min
Ukázka
True or x
not x>5
x < 3 and x < 6

Programování v Pythonu
Programování přímo v prohlížeči, s automatickým vyhodnocením správnosti programu. Cvičení používá programovací jazyk Python 3.
V tomto cvičení píšete programy, které pracují s textem a čísly. Pokud chcete obrázky, zkuste cvičení Python želva.