Nauč se Python > Kurzy > Hadí workshop @CodeWeekEU > Úvod do Pythonu > Porovnávání a logika

Porovnávání věcí

Programátoři často porovnávají různé hodnoty. Pojďme se podívat, jak na to.

>>> 5 > 2
True
>>> 5 > 8
False
>>> 5 < 8
True

Když se Pythonu zeptáš, jestli je jedno číslo větší než druhé, odpoví ti True (pravda) nebo False (nepravda).

Funguje to i se složitějšími výrazy:

>>> 5 > 2 * 2
True

„Větší než“ a „menší než“ jsou značky známé z matematiky. Chceš-li se ale zeptat, jestli jsou dvě čísla stejná, je potřba použít trochu jiný zápis:

>>> 1 == 1
True

Jedno rovnítko = používáme pro přiřazení hodnoty do proměnné. Když chceš zkontrolovat, jestli se věci navzájem rovnají, vždy, vždy musíš dát dvě rovnítka ==.

Další možnosti porovnávání jsou nerovnost (≠), větší nebo rovno (≤) a meší nebo rovno (≥). Většina lidí tyhle symboly nemá na klávesnici, a tak Python používá !=, <= a >=.

>>> 5 != 2
True
>>> 3 <= 2
False
>>> 6 >= 12 / 2
True

Už jsi někdy slyšel/a výraz „srovnávat jablka a hrušky“? Zkusme v Pythonu ekvivalent:

>>> 1 > 'krajta'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'int' and 'str'

Stejně jako nelze srovnávat „jablka a hrušky“, Python není schopen porovnávat řetězce (str) a čísla (int). Místo toho zobrazí TypeError a říká nám, že tyto dva typy nelze porovnat.

Co se stane, když v minulé ukázce zaměníš > za ==?

Řešení

Logika

Chceš zkusit ještě něco? Zadej tohle:

>>> 6 > 2 and 2 < 3
True
>>> 3 > 2 and 2 < 1
False
>>> 3 > 2 or 2 < 1
True

V Pythonu můžeš zkombinovat několik porovnání do jednoho!

  • Pokud použiješ operátor and, obě strany musí být pravdivé, aby byl celý výraz pravdivý.
  • Pokud použiješ operátor or, stačí aby jen jedna strana z porovnání byla pravdivá.

Přítomnost

Nebylo by pěkné zjistit, jestli tvoje číslo vyhrálo v loterii? K tomu budeš potřebovat zjistit, jestli seznam obsahuje daný prvek. Používá se na to operátor in:

>>> loterie = [3, 42, 12, 19, 30, 59]
>>> 18 in loterie
False
>>> 42 in loterie
True

Není to úplně porovnání, ale dostaneš stejný druh výsledku.

Pravdivostní hodnoty

Právě ses dozvěděl/a o novém typu objektu v Pythonu. Podobně jako máme řetězec, číslo, seznam nebo slovník existuje pravdivostní hodnota, nebo častěji anglicky boolean.

Může mít jednu z dvou hodnot: True a False.

Aby Python pochopil, že se jedná o tento typ, je potřeba dávat pozor na velikost písmen. true, TRUE, tRUE nebude fungovat – jedině True je správně.

Jako každou hodnotu, i boolean můžeš uložit do proměnné:

>>> a = True
>>> a
True

Stejně tak můžeš uložit i výsledek porovnání:

>>> a = 2 > 5
>>> a
False

Shrnutí

V této sekci ses dozvěděl/a:

  • V Pythonu můžeš porovnávat pomocí operátorů >, >=, == <=, <, != a in
  • Operátory and a or umí zkombinovat dvě porovnání.
  • Boolean (pravdivostní hodnota) je typ, který může mít jednu ze dvou hodnot: True (pravda) nebo False (nepravda).

Toto je stránka lekce z kurzu, který probíhá nebo proběhl naživo s instruktorem.