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
Co vypíše program?a = False and False
print(a)
Co vypíše program?a = False
b = True
c = a or b
print(a, b, c)
Existuje x, pro které podmínka platí?x <= 5 and x >= 5

Logické výrazy v Pythonu (střední)
94 zadání
Typicky zabere: 10 min
Ukázka
Jsou tyto výrazy ekvivalentní?# n je prirozene cislo
(n % 4 == 1) or (n % 4 == 2) or (n % 4 == 3)
n % 4 != 0
Existuje celé číslo x, pro které podmínka platí?x != x or x > x
Lze not v <= 5
zjednodušit na v > 5
?
Logické výrazy v Pythonu (těžké)
83 zadání
Typicky zabere: 14 min
Ukázka
Jsou tyto výrazy ekvivalentní?x > r or x > s
x > max(r, s)
Vyhodnoťte:(3 > 3) == (5 < 5)
Lze not x < 0
zjednodušit na x >= 0
?
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.