Skip to main content

Python (Ukázka, strana 99)

Page 1

98

Kapitola 5 Logické hodnoty a operace

Ti, kteří již programovali v některém z jazyků rodiny C (Java, C++, C#, Groovy, …) si musí zapamatovat, že v pythonském ternárním výrazu je jiné pořadí operandů než v jazyce, na který jsou zvyklí.

Ve výpisu 5.6 je podmíněný výraz použit v několika definicích lambda-výrazů. Na řádku 1 je použit pro definici výrazu nahrazující znaménko slovním vyjádřením. Zde bych vás chtěl upozornit na závorku uzavírající podmíněný výraz. Jak se můžete přesvědčit v tabulce 3.1 na straně 55, podmíněný výraz má velmi malou prioritu a po odstranění závorek by se výrazem za else stal celý součet. O tom se můžete přesvědčit na řádku 6, kde je zobrazena reakce na zavolání lambda-výrazu z řádku 4, v němž jsem závorky odstranil. Na řádku 7 je pak definován lambda-výraz realizující matematickou funkci signum, která pro záporné hodnoty svého operandu vrací -1, pro nulu vrací nulu a pro kladné hodnoty operandu vrací +1. Na příkladu této funkce jsem se snažil ukázat, že ve složitějších situacích lze podmíněné výrazy řetězit. Výpis 5.6: 1 2 3 4 5 6 7 8 9 10

Použití podmíněného výrazu

>>> pm = lambda x : ('plus ' if x>=0 else 'minus ') + str(abs(x)) >>> pm(5), pm(-5) ('plus 5', 'minus 5') >>> pm = lambda x : 'plus ' if x>=0 else 'minus ' + str(abs(x)) >>> pm(5), pm(-5) ('plus ', 'minus 5') >>> sign = lambda x : -1 if x<0 else 0 if x==0 else +1 >>> sign(-10), sign(0), sign(+5) (-1, 0, 1) >>>

5.7 Shrnutí

Záznam komunikace s interpretem probíhající v této kapitole najdete v trojici souborů nazvaných m05__Logické_operace.

=§=

64_Python_3,9_ZLOM.doc; verze 1.04.8619_2021-01-18_po_18-03

Strana 98 z 480 Ukázka elektronické knihy, UID: KOS286733


6.1 Příkaz pass

99

Kapitola 6 Jednoduché příkazy 6 Jednoduché příkazy

Co se v kapitole naučíte Tato kapitola vám představí několik základních příkazů: příkaz pass, příkaz tvořený výrazem, přiřazovací příkaz, příkaz del a příkaz assert. Současně probere možnost zadávat několik příkazů na řádku a na závěr pak i základy formátování složených příkazů.

6.1 Příkaz pass Začneme nejjednodušším. Příkaz pass bychom mohli nazvat prázdný příkaz. Použijeme jej tam, kde syntaktická pravidla vyžadují zadání příkazu, ale my zrovna nemáme co zadat, protože se na daném místě nemá nic dělat. Občas se používá také v místech, v nichž prozatím ještě nevíme, co by se zde mělo dělat. Může to znamenat, že se při vykonávání kódu dané místo vždy jenom proběhne, ale může sloužit také jako zástupce (placeholder – „držič“ místa), který pouze označuje místo, kam má později přijít nějaký kód. Řada programátorů ale v roli tohoto zástupce používá raději výpustku ... (viz podkapitolu 2.8 Výpustka – Ellipsis, ... na straně 49).

6.2 Příkaz tvořený výrazem, výrazový příkaz Příkaz tvořený výrazem neboli výrazový příkaz se v interaktivním režimu (to je ten, s nímž prozatím komunikujeme s IDLE) používá především ke spočtení hodnot a jejich následnému zobrazení. V kódu se používá převážně pro volání funkcí. Jiná použití jsou sice povolená, ale většinou nepřinášejí žádný užitek. V interaktivním režimu, v němž prozatím pracujeme, se s výjimkou výrazů, jejichž hodnota je None, výsledky výrazových příkazů ihned zobrazují. Při načítání zdrojových souborů, o němž budeme hovořit v následující kapitole, se tyto příkazy sice provedou, 64_Python_3,9_ZLOM.doc; verze 1.04.8619_2021-01-18_po_18-03

Strana 99 z 480 Ukázka elektronické knihy, UID: KOS286733


100

Kapitola 6 Jednoduché příkazy

ale výsledek se nezobrazí. Uplatní se tak pouze tehdy, je-li součástí výrazu funkce s vedlejším efektem – o těch budeme hovořit v podkapitole 8.8 Funkce s vedlejším efektem na straně 147.

6.3 Několik příkazů na řádku Ve výpisu 4.3 na straně 82 jsem na řádku 1 použil několik přiřazovacích příkazů na jednom řádku. Python umožňuje zadat několik příkazů na řádek, jenom je musíte oddělit středníkem. To, jestli zadáte středník i za poslední z nich, je už pouze na vašem uvážení. Občas toho v dalších výpisech využiju, a místo abych názvy proměnných, na jejichž hodnoty se chci zeptat, zadával v samostatných příkazech (jak jsem to dělal např. ve výpisu 4.3 na stránce 82), budu je občas uvádět za středníkem na stejném řádku s příkazem, který jejich hodnoty nastavil, nebo jsou v něm použity.

6.4 Přířazovací příkaz S přiřazovacím příkazem jsme se setkali již v podkapitole 4.4 Zavedení proměnné na straně 80. Jak si jistě pamatujete, používá se pro inicializaci proměnných a pro případnou následnou změnu jejich hodnot. Jak jsme si vyzkoušeli (viz výpis 4.3 na straně 82), umožňuje současné přiřazení více hodnot více proměnným. Nebudu zde proto opakovat, co jsme si již v tomto výpisu předvedli, a představím další možnosti.

Programátory se zkušenostmi z jazyků odvozených z jazyka C upozorňuji, že v Pythonu není přiřazení výraz, ale příkaz, takže nemůže vystupovat ve výrazech. Místo něj je třeba použít přiřazovací výraz probíraný v podkapitole 4.12 Přiřazovací výraz na straně 89.

Složená přiřazení Python převzal z jazyka C složená přiřazení, která zahrnují provedení nějaké binární operace. Operátor složených přiřazení sestává z operátoru požadované operace následovaného rovnítkem. Označíme-li znakem # onu binární operaci, pak se příkaz proměnná #= výraz

provede tak, jako by byl zadán ve tvaru proměnná = proměnná # (výraz)

64_Python_3,9_ZLOM.doc; verze 1.04.8619_2021-01-18_po_18-03 Ukázka elektronické knihy

Strana 100 z 480


Turn static files into dynamic content formats.

Create a flipbook