Następny temat jaki mam do opisania to jest instrukcja warunkowa w Pythonie. Musicie wiedzieć, że Python rządzi się swoimi prawami, jeśli chodzi o składnię. Stało się normą, że w danym języku, w niektórych miejscach są inne słowa kluczowe, inne sposoby zapisu oraz inne konwencje nazewnicze. Natomiast ten język idzie znacznie dalej co do oryginalności składni i dlatego podzielimy to sobie na część teoretyczną oraz praktyczną. Jak wygląda instrukcja "if" w języku Python? Na co trzeba uważać? Czy są jakieś rozróżnienia co do słów kluczowych? Artykuł przyniesie odpowiedź na każde z tych pytań.
Tweet |
INSTRUKCJA WARUNKOWA W PYTHONIE POSIADA SWOJE PRAWA
To posiada wiele innych nazw: warunek, "if" lub "conditional". We wszystkich określeniach mamy na myśli to samo. Instrukcja kontrolująca przebieg programu w zależności od spełnienia (lub niespełnienia) warunku. Od niej jest zależny dalszy ciąg wykonywania programu.
CZYM JEST WARUNEK?
Wstawiany warunek zawsze jest na końcu wyrażeniem typu logicznego. Bez względu na to, czy porównujemy ze sobą dwie liczby, sprawdzamy czy wynik funkcji jest równy N bądź badamy zwracaną przez nią wartość logiczną. Za każdym razem jest to zamieniane na "prawdę" ("True") lub "fałsz" ("False"). Nawet jeśli wstawimy dowolną liczbę "żywcem", i tak będzie to zamienione na "boolean".
WYJĄTEK W PISOWNI
Mała pułapka na sam początek znajduje się już w pisowni wartości logicznych. "True" i "False" jest takie same jak w całej palecie języków wysokiego poziomu, aczkolwiek język Python ma wszczepione te słówka pisane wielką literą! Zatem, "True" będzie prawidłowe (domyślny IDE o nazwie "IDLE" zamaluje to słowo odpowiednim kolorem), natomiast "true" będzie traktowane jak nazwa dopuszczalna do zarezerwowania dla zmiennej. Jeżeli takiej nie znajdzie, ujrzymy zgłoszony wyjątek. Instrukcja warunkowa w Pythonie, jeśli zawiera w sobie te słówka, również mają być pisane wielką literą!
Python zwraca BACZNĄ uwagę na pisownię wartości logicznych! "Prawda" lub "fałsz" pisane małymi literami zostaną potraktowane jak nazwy zmiennych.
ZASADY SKŁADNI
Przyjrzymy się teraz obowiązującej składni. Będę w punktach opisywał i prezentował na co należy zwrócić uwagę razem z widocznymi odstępstwami od konwencji nazewniczych obowiązujących w większej części języków programowania.
BUDOWA INSTRUKCJI WARUNKOWEJ
Pierwszą rzeczą jest zawsze słowo kluczowe "if". Ono jeszcze jest takie samo :). Potem dorzucamy dowolne wyrażenie (najczęściej z operatorem relacyjnym), które zostanie rozstrzygnięte przez interpreter w postaci wartości logicznej. Może to być na ten przykład porównanie liczb, wywołanie funkcji zwracającej wartość logiczną albo sprawdzenie czy aktualna wartość zmiennej jest większa od jakiejś stałej.
O wiele ważniejsza jest informacja, iż ta składnia wymaga bezwzględnego przestrzegania dwóch poniższych zasad:
- Za każdym razem gdy tworzona jest instrukcja warunkowa, dajecie dwukropek na końcu!,
- Wymagane jest utworzenie OBOWIĄZKOWEGO wcięcia jak po naciśnięciu klawisza Tab.
Instrukcja warunkowa w najprostszej postaci wygląda następująco:
Instrukcja warunkowa w Pythonie opatrzona jest słowem kluczowym "if", warunkiem w dowolnej postaci mogącej się "zamienić" na wartość logiczną, znakiem dwukropka na końcu, a także wyraźnym wcięciem symbolizującym odrębny blok kodu.
Na powyższym obrazku widzimy przykład prostej instrukcji warunkowej wypisującej komunikat jeżeli zmienna "x" jest równa 60. W przeciwnym razie, nic nie zostanie wyświetlone.
ELSE
Kolejnym słowem kluczowym bezpośrednio związanym z instrukcją warunkową jest "else". "else" oznacza "w przeciwnym razie" i używane jest do programowania określonych instrukcji, gdy dany warunek (oraz każdy inny zawarty po słowie "elif") NIE zostanie spełniony! Z tego względu nie można wstawić bloku rozpoczynającego się od "else". Zawsze musi być najpierw "if", a potem ewentualnie może wystąpić "else". To też tłumaczy fakt, że może w takiej sytuacji wykonać się albo pierwszy, albo drugi blok kodu. Wtedy to ma ręce i nogi. W przeciwieństwie do pierwszego słowa, ono nie wymaga wprowadzania żadnych warunków, choć ich użycie jest jak najbardziej dozwolone. Tak instrukcja warunkowa w Pythonie została skonstruowana.
Zwróćcie uwagę, że po słowie "else" również wstawiamy wymagany dwukropek!
Instrukcja warunkowa posiadająca blok kodu dla słowa "else" uruchamia zestaw instrukcji dla przypadku, kiedy podany warunek NIE jest spełniony!
ELIF
Gdy występuje chęć utorowania przebiegu programu na więcej niż dwie ścieżki, na myśl ma szybko przyjść słowo kluczowe "elif". Nie "else if", nie "elseif" łącznie, tylko "elif" czyli pierwsze dwie litery obu słówek. To stanowi kolejny wyjątek, który występuje w Pythonie, jeśli chodzi o zapis. Wymienione słowo umożliwia skierowanie interpretera na wykonanie jeszcze innego bloku kodu w sytuacji, gdy nie zostanie spełniony pierwszy warunek, ale może spełnić się każdy następny. Każdy następny, czyli dozwolone jest utworzenie nieskończonej liczby bloków "elif".
Innymi słowy, jesteśmy w stanie utworzyć kilka ŚCIŚLE OKREŚLONYCH warunków "schodzących w dół" jeden po drugim, dopóki któryś z nich nie zostanie spełniony. Jeżeli zajdzie taka sytuacja, "schodzenie" jest przerywane, dochodzi do wejścia do odpowiedniego bloku kodu, a po jego zakończeniu program wychodzi całkowicie z instrukcji warunkowej i idzie dalej. Jeżeli instrukcja warunkowa w Pythonie posiada jednocześnie i "elif", i "else", to jeśli warunek przy "if" oraz "elif" będzie fałszywy, to ZAWSZE zostanie wykonana część "else", gdyż ona nie ma ściśle określonego warunku (działa jak takie "koło ratunkowe", gdy cała reszta zawiodła)!
"elif" umożliwia utworzenie kolejnej "odnogi" dla przebiegu programu i jej wykonanie w sytuacji, gdy każdy poprzedni warunek nie zostanie spełniony!
GRY LICZBOWE
Jak napisałem powyżej, instrukcja warunkowa bez problemu przyjmie stałą liczbę w miejsce warunku. Przypominam o świętej zasadzie: tylko zero daje "fałsz"! Każda inna liczba (nawet zmiennoprzecinkowa) zawsze zwróci "prawdę"!
Instrukcja warunkowa może posiadać warunek w postaci sztywno wstawionej liczby. Każda różna od zera zawsze zwróci "prawdę"!
A GDZIE JEST "SWITCH"?
Zła wiadomość. Python nie dysponuje instrukcją wielokrotnego wyboru znaną bardziej od strony słowa kluczowego, "switch". Tutaj musimy iść na piechotę i pozostaje nam tylko rozpisywanie klauzul "elif" :(.
Na tę chwilę to wszystko, co wydaje mi się najważniejsze na ten temat. Instrukcja warunkowa w Pythonie posiada dużo odstępstw od innych języków wysokiego poziomu i trzeba wyraźnie patrzeć co, a także gdzie się pisze!