Wednesday, January 21, 2009

Python - Conditional Expression

Python posiada składnię "conditional expression". Pamiętacie taką śmieszną strukturę (warunek) ? jezeli_true : jezeli_false ?

W Pythonie przyjmuje ona formę (na przykład):

'parzyste' if x % 2 == 0 else 'nieparzyste'

To co kole mnie w oczy to fakt iż po warunku na if nie ma dwukropka, ale odrazu else. Jak ta struktura działa ? Jeżeli warunek w ifie jest spełniony zostanie zwrócona wartość 'parzyste', jeżeli nie 'nieparzyste'. Zwróconą wartość można przyporządkować łatwo do zmiennej. Na przykład

liczba = 4
czy_parzyste = 'parzyste' if liczba % 4 == 0 else 'nieparzyste'
czy_parzyste = ('parzyste' if liczba % 4 == 0 else 'nieparzyste')


O dziwo zarówno pierwszy jak i drugi zapis działają tak samo. Zmienne czy_parzyste zostanie nada wartość 'parzyste' lub 'nieparzyste', przy czym IMHO drugi zapis jest o niebo czytelniejszy !

1 comment:

Anonymous said...

Jest jeszcze konstrukcja:
x = a and b or c

Ale jest mniej uniwersalna
z powodu jej ograniczeń.