Python tutoriál 6. díl

Booleovské hodnoty

Při programování často potřebujete vědět, zda je výraz pravdivý nebo nepravdivý. V Pythonu můžete vyhodnotit jakýkoli výraz a získat jednu ze dvou odpovědí, True nebo False.

Když porovnáte dvě hodnoty, výraz se vyhodnotí a Python vrátí pravdivostní odpověď:

Na základě těchto booleovských pravdivostních odpovědí můžete příkazy if a else větvit kód:

Funkce bool() umožňuje vyhodnotit jakoukoli hodnotu a vrací True nebo False:

Téměř každá hodnota je vyhodnocena jako True, pokud má nějaký obsah. Každý řetězec má hodnotu True, kromě prázdných. Každé číslo, kromě 0. Jakýkoli seznam, n-tice, množina a slovník mají hodnotu True, kromě prázdných. Není mnoho hodnot, které se vyhodnotí jako False, kromě prázdných hodnot, jako jsou (), [], {}, „“, čísla 0 a hodnoty None.

Objekt se vyhodnotí jako False v případě, že máte objekt vytvořený z třídy s funkcí __len__(), která vrací 0 nebo False:

Můžete vytvořit funkci s pravdivostní návratovou hodnotou:

A použít tuto funkci například v podmínce:

Python má mnoho vestavěných funkcí, které vracejí booleovskou hodnotu. Například funkci isinstance() lze použít k určení, zda je objekt určitého datového typu:

Operátory

Používají se k provádění operací s proměnnými a hodnotami.

Python rozděluje operátory do následujících skupin:

  • aritmetické
  • přiřazovací
  • porovnávací
  • logické
  • identitní
  • členské
  • bitové

Aritmetické

Provádění běžných matematických operací:

operátorpopispříklad
+sčítáníx + y
odčítáníx – y
*násobeníx * y
/děleníx / y
%modulx % y
**umocňováníx ** y
//celé dělení (floor division)x // y

Přiřazovací

Přiřazení hodnot proměnným:

operátorpříkladekvivalent
=x = 5x = 5
+=x += 3x = x + 3
-=x -= 3x = x – 3
*=x *= 3x = x * 3
/=x /= 3x = x / 3
%=x %= 3x = x % 3
//=x //= 3x = x // 3
**=x **= 3x = x ** 3
&=x &= 3x = x & 3
|=x |= 3x = x | 3
^=x ^= 3x = x ^ 3
>>=x >>= 3x = x >> 3
<<=x <<= 3x = x << 3
:=print(x := 3)X = 3 print(x)

Porovnávací

Porovnání dvou hodnot:

operátorpopispříklad
==rovná sex == y
!=různýx != y
>větší nežx > y
<menší nežx < y
>=větší nebo rovnox >= y
<=menší nebo rovnox <= y

Logické

Používají se kombinaci výrazů:

operátorpopispříklad
andVrátí True, pokud jsou oba výroky pravdivéx < 5 and x < 10
orVrátí True, pokud je jeden z výroků pravdivýx < 5 or x < 4
notObrátí výsledek, vrátí False, pokud je výsledek pravdivýnot(x < 5 and x < 10)

Identitní

Používají se k porovnání objektů. Objekty se nemusí rovnat, ale musí být stejným objektem se stejným umístěním paměti:

operátorpopispříklad
isVrátí hodnotu True, pokud jsou obě proměnné stejný objekt.x is y
is notVrátí hodnotu True, pokud nejsou obě proměnné stejný objekt.x is not y

Členství

Používají se k testování, zda je sekvence přítomna v objektu:

operátorpopispříklad
inVrátí hodnotu True, pokud sekvence se zadanou hodnotou je v objektu přítomnax in y
not inVrátí hodnotu True, pokud sekvence se zadanou hodnotou není v objektu přítomnax not in y

Bitové

Porovnávání binárních hodnot:

operátornázevvýznampopispříklad
&ANDlogický součinnastaví bit na 1, pokud jsou oba bity 1x & y
|ORlogický součetnastaví bit na 1, pokud je jeden ze dvou bitů 1x | y
^XORexkluzivní disjunkcenastaví bit na 1, pokud je pouze jeden ze dvou bitů 1x ^ y
~NOTnegaceinvertuje všechny bity~x
<<Zero fill left shiftposuv dolevazatlačením nul zprava a vypadnutím bitu vlevox << 2
>>Signed right shiftposuv dopravazatlačením levého bitu zleva a vypadnutím pravéhox >> 2

Priorita operátorů

Popisuje pořadí, ve kterém jsou operace prováděny. Závorky mají nejvyšší prioritu, což znamená, že výrazy v závorkách musí být vyhodnoceny jako první:

Násobení má vyšší prioritu než sčítání a vyhodnotí se před sčítáním:

Operátory podle priority od nejvyšší po nejnižší:

operátorpopis
()závorky
**umocňování
+x -x ~xunární plus/mínus a bitové NE
* / // %násobení, dělení, dělení beze zbytku a modul
+ –sčítání a odčítání
<< >>bitové posuny
&bitový AND
^bitový XOR
|bitový OR
==  !=  >  >=  <  <=  is  is not  in  not in operátory porovnávací, identity a členství
notnegace
andlogický součin
orlogický součet

Pokud mají dva operátory stejnou prioritu, je výraz vyhodnocen zleva doprava.

Například sčítání + a odčítání - má stejnou prioritu a výraz je vyhodnocován zleva doprava:

Python tutoriál 7. díl