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


Turn static files into dynamic content formats.

Create a flipbook