Następny temat z nauki Pythona: instrukcja warunkowa w języku Python 🔥. Przedstawię Ci opis samej konstrukcji, jej znaczenie w działaniu programu, a także pokażę Ci różne sposoby budowy, tak abyś wiedział(a) który wariant będzie najlepszy w danej sytuacji 👍. Zapraszam serdecznie do środka 😄!
WYJAŚNIAM JAK SZCZEGÓLNE ZNACZENIE MA INSTRUKCJA WARUNKOWA W JĘZYKU PYTHON!
Zaczynamy od wyjaśnienia sobie samego pojęcia, tak aby potem przejść do poznania składni i różnych sposobów zapisu 📖!
CZYM JEST INSTRUKCJA WARUNKOWA?
Instrukcja warunkowa (ang. if statement / if conditional) to element kodu źródłowego definiujący weryfikację jakiegoś warunku, od spełnienia którego zależeć będzie dalszy przebieg programu ℹ️. Na prostym przykładzie z życia, możemy to sobie porównać do odwiedzania sklepu, w którym dostrzegamy rzecz jaką chcielibyśmy sobie kupić 💵. Patrzymy ile mamy pieniędzy. Od tej pory, są 2 opcje 👇:
- mamy dostateczną sumę pieniędzy i możemy to sobie kupić,
- nie mamy dostatecznej sumy pieniędzy i nie możemy tego sobie kupić.
W tym przypadku, kluczowe pytanie brzmi: "czy mamy dostateczną sumę pieniędzy?" 🔥. To jest nasz warunek! Od odpowiedzi na to pytanie będzie zależeć dalszy ciąg tej sytuacji. Właśnie tak funkcjonuje instrukcja warunkowa 💡!
Jak zobaczysz na przykładach, instrukcja warunkowa w języku Python pozwala też na programowanie bardziej złożonych sytuacji np. zanim pójdziemy na piechotę do znajomego, sprawdzimy wcześniej czy mamy kasę na bilet autobusowy, a jeszcze wcześniej zweryfikujemy poziom paliwa samochodu czy da się samemu pojechać 😊. Pokażę to w dalszej części artykułu.
Czyli jednym zdaniem, instrukcja warunkowa jest miejscem badania określanego warunku, a jego spełnienie lub niespełnienie wpływa na dalszy przebieg programu 🧠.
Wyjaśnijmy sobie jeszcze drugie pojęcie: "warunek" 🙂.
CZYM JEST WARUNEK W PROGRAMOWANIU?
Warunek w programowaniu, to wyrażenie powstałe z operatorów relacyjnych ℹ️. Wytłumaczyłem w załączonym artykule na czym polega operator relacyjny, a tutaj tylko wspomnę, że chodzi o badanie dwóch wartości czy spełniają jakąś zależność np. czy liczba A jest większa od B 💡. Warunek może być jeszcze bardziej złożonym wyrażeniem korzystającym dodatkowo z operatorów logicznych i one z kolei umożliwiają tworzenie kombinacji z wielu osobnych warunków np. oba muszą zostać spełnione bądź tylko jeden z kilkunastu ✅.
Tyle! Możemy przejść do ukazania instrukcji warunkowej w Pythonie 😉!
JAK UTWORZYĆ INSTRUKCJĘ WARUNKOWĄ W JĘZYKU PYTHON?
W Pythonie, instrukcję warunkową tworzymy w ten sposób 👇:
if [warunek]:
[instrukcje]Na razie pokażę samą budowę, abyśmy przeanalizowali sobie poszczególne elementy 🔍.
Postać instrukcji "if" ("jeżeli") składa się z następujących punktów 👇:
- słowo kluczowe "if",
- wartość logiczna, zmienna lub warunek utworzony z operatorów relacyjnych,
- znak dwukropka (obowiązkowa rzecz, bez której będzie błąd składniowy 🚫),
- instrukcje po zrobieniu obowiązkowego wcięcia (poprzez spację lub tabulator), które mają się wykonać po spełnieniu warunku (gdy wynik badania warunku będzie w postaci wartości "True" ℹ️).
Teraz wyjaśniam szerzej każdy z punktów ⏩!
Zawsze zaczynamy od słowa "if". Następnie, po spacji, wpisujemy wartość logiczną, zmienną bądź warunek, który ma nam tworzyć zależność dalszego przebiegu wykonania kodu. Zaraz po nim dodajemy znak dwukropka, o którym nie wolno nam zapomnieć 🔥! To obowiązkowa część składni całej instrukcji warunkowej, bez której nie będziemy mogli uruchomić programu 💥!
Po znaku dwukropka przechodzimy do nowego wiersza, tylko koniecznie tworzymy wcięcie w postaci spacji albo tabulatora ⚠️! To również jest obowiązkowe, gdyż symbolizuje "przynależność" do warunku i bez tego wcięcia, Python nie uruchomi naszego programu ⛔! Od tej pory, wstawiamy dowolne instrukcje jak zwykle, które wykonają się wtedy i tylko wtedy, gdy podany przez nas warunek zostanie spełniony ✔️.
Tak wygląda najprostsza postać 👀. A teraz pokażę Ci konkretny przykład 😉!
PRZYKŁAD UŻYCIA INSTRUKCJI WARUNKOWEJ W JĘZYKU PYTHON
Dajmy na to, że napisaliśmy sprawdzian i chcielibyśmy sprawdzić czy udało się go zaliczyć ✔️. To wówczas instrukcja warunkowa mogłaby zostać napisana w taki sposób 👇:
if rating >= 3:
print('Sprawdzian zaliczony')Mamy zmienną do przechowywania informacji o ocenie w formie liczbowej (więcej informacji na temat zmiennych możesz wyczytać z załączonego artykułu ℹ️). Zaliczenie odbywa się wtedy, gdy ocena za niego jest co najmniej dostateczna (może być dopuszczająca w zależności od systemu oceniania, jednak w tym przykładzie trzymamy się "trójki"), więc w takiej formie układamy nasz warunek 🙂.
W tym przypadku najlepiej będzie pasować zbadanie czy wartość zmiennej jest większa bądź równa 3, bo wyższe oceny także oznaczają zaliczenie sprawdzianu 😁. Jeżeli to okaże się prawdą, wtedy wypisujemy na wyjściu tekst "Sprawdzian zaliczony", używając funkcji "print" ❤️! Ponieważ instrukcja "print" jest "wcięta", jest ona poddana uwarunkowaniu, a to oznacza, że zostanie wykonana wyłącznie po spełnieniu tego warunku ℹ️. W przypadku jego niespełnienia, nic się nie pokaże.
Mamy za sobą najbardziej podstawowe użycie instrukcji warunkowej w języku Python ✅. Pokazałem właśnie pierwszy przypadek: wykonanie czegoś pod pewnym warunkiem 1️⃣. Są jednak sytuacje i w życiu, i w programie, że zechcesz sprawić, aby stało się coś również w sytuacji niespełnienia warunku ❌.
Na przykład wychodząc do pracy chciałeś(-aś) pojechać samochodem, ale nie zdążyłeś(-aś) wlać paliwa do baku ⛽. Wtedy postanawiasz pojechać autobusem (gdyby samochód był dyspozycyjny, nie zdecydował(a)byś się na komunikację publiczną 💡) 🚌.
To jest przykład uwarunkowania, gdy coś się dzieje w dwóch różnych przypadkach przebiegu zdarzeń ↔️! Jeżeli warunek jest spełniony, dzieje się coś innego. Jeżeli warunek nie jest spełniony, również dzieje się coś innego 😮! W Pythonie da się to zrobić dodając niewielki fragment do instrukcji warunkowej 😄!
JAK SPRAWIĆ, ABY W JĘZYKU PYTHON COŚ SIĘ WYKONAŁO W PRZYPADKU NIESPEŁNIENIA WARUNKU?
Mając instrukcję warunkową, wystarczy dopisać bardzo podobny blok ze słowem "if", tym razem korzystając ze słowa "else" ("w przeciwnym razie") 👇:
if rating >= 3:
print('Sprawdzian zaliczony')
else:
print('Sprawdzian niezaliczony')Rozbijmy sobie postać bloku "else" na poszczególne punkty 🔍. Przedstawiają się następująco 👇:
- słowo kluczowe "else",
- znak dwukropka (obowiązkowa rzecz, bez której będzie błąd składniowy 🚫),
- instrukcje po zrobieniu obowiązkowego wcięcia (poprzez spację lub tabulator), które mają się wykonać po niespełnieniu warunku (gdy wynik badania warunku będzie w postaci wartości "False" ℹ️).
Mamy bardzo podobnie w porównaniu do bloku "if" 😊. Jedyna różnica jest taka, że tutaj nie definiujemy żadnego warunku 🔥. To dlatego, że "else" odpowiada za wykonanie instrukcji w przypadku niespełnienia podanego warunku i kropka ⚫. Jeżeli warunek jest spełniony, wykona się wszystko to, co dotyczy bloku "if". Jeżeli warunek jest niespełniony, wykona się wszystko to, co dotyczy bloku "else". Taka jest zasada 💪!
To pokazuje przypadek drugi: wykonanie dwóch różnych czynności w przypadku spełnienia i niespełnienia warunku 2️⃣. To wciąż nie jest koniec wszystkich możliwości 😲! Bywa też tak, że mamy do dyspozycji wiele różnych opcji i każda z nich może przynieść jakieś odmienne konsekwencje 💥!
Przykładowo, gdy nagle potrzebujesz pieniędzy na coś, masz do wyboru kilka różnych możliwości 👇:
- wziąć kredyt,
- wziąć nadgodziny,
- pożyczyć od znajomych,
- sprzedać jakiś przedmiot.
Każda z opcji przyniesie różne konsekwencje, pozytywne i negatywne. Tutaj nie ma tak, że z jednego warunku robią się 2 rozwidlenia i idziemy jedną lub drugą drogą 🚫. Tym razem jest wiele dróg dla wielu osobnych przypadków, a to, co się wydarzy, zależy od podjętej decyzji ⚠️!
To jest przypadek, który nie kształtuje przepływu w stylu "albo, albo" 😱! Masz więcej niż 2 możliwości i każda z nich może powodować inne następstwa 🫵! To również da się zrobić w Pythonie, tylko to będzie już troszkę trudniejsza konstrukcja 😉.
JAK ZROBIĆ, ABY INSTRUKCJA WARUNKOWA W JĘZYKU PYTHON SPRAWDZIŁA WIĘCEJ, NIŻ JEDEN WARUNEK?
Zakładając, że już mamy instrukcję warunkową, musimy dopisać bardzo podobny blok do bloku "if", zamieniając jedynie słowo kluczowe na "elif" 👇:
if rating >= 5:
print('Sprawdzian zaliczony doskonale')
elif rating >= 3:
print('Sprawdzian zaliczony')
else:
print('Sprawdzian niezaliczony')Zobacz, że poza lekko zmienionym słowem kluczowym, reszta jest taka sama, jak dla bloku "if" 👇:
elif rating >= 3:
print('Sprawdzian zaliczony')Pozwolę sobie jeszcze wtrącić, że w Pythonie występuje oryginalne podejście do słowa kluczowego do definiowania warunku alternatywnego ⚠️. Tutaj mamy "elif", natomiast w zdecydowanej większości innych języków spotkasz się z hasłem "else if" 😮! Piszę o tym, abyś później nie był zaskoczony(-a) w sytuacji, gdy przejdziesz do nauki innego języka niż Python, a on jest pierwszym, którego się uczysz 🙂.
Instrukcję warunkową ukazaną wyżej, "w tłumaczeniu na polski", Python przeanalizuje następująco 👇:
- najpierw sprawdza czy jest spełniony warunek zdefiniowany w bloku "if",
- jeżeli tak, to wykonuje instrukcje znajdujące się pod warunkiem w bloku "if" i nie sprawdza dalszej części,
- jeżeli nie, to sprawdza czy jest spełniony warunek zdefiniowany w bloku "elif",
- jeżeli tak, to wykonuje instrukcje znajdujące się pod warunkiem w bloku "elif" i nie sprawdza dalszej części,
- jeżeli nie, to wykonuje instrukcje znajdujące się pod warunkiem w bloku "else".
Czyli krótko mówiąc, występuje badanie warunku jeden po drugim i wykonanie tylko jednego z wielu bloków 💥.
Python zawsze zaczyna od bloku "if", gdy to jest "kręgosłup" każdej instrukcji warunkowej. W pierwszej kolejności nie może występować żadne inne słowo kluczowe ❌! Później, gdy okaże się, że ten pierwszy warunek nie jest spełniony, "schodzi w dół" i "patrzy" czy są jakiekolwiek bloki alternatywne i sprawdza je jeden po drugim, zgodnie z kolejnością ich wprowadzenia 🔥! Także zwracaj uwagę na to, co powinno zostać sprawdzone jako pierwsze, gdyż ma to znaczenie 👀!
Jeżeli którykolwiek z warunków jest spełniony, to Python wykonuje blok znajdujący się pod nim i kończy dalsze sprawdzanie, gdyż doszło do rozstrzygnięcia którą drogą należy pójść ✅. Jeżeli wszystkie weryfikacje zawiodły, to wykonuje się blok "else" (jeśli został zdefiniowany), które działa jak takie "koło ratunkowe" ⏏️. Jeżeli nie ma bloku "else", wtedy nic się nie wykonuje. Dlatego też, "else" musi zawsze wystąpić na samym końcu 🔚!
Nie musisz przymusowo dodawać bloku "else", jeśli go nie potrzebujesz - wtedy po prostu go nie piszesz 🙂.
![]() |
Instrukcja warunkowa w języku Python jest elementem kodu źródłowego określającego nam punkt decyzyjny w programie wpływający na jego dalszy ciąg w zależności od spełnienia lub niespełnienia podanego warunku.
Ostrzegę ponownie, że Python przyjmuje oryginalny zapis instrukcji warunkowej pod wieloma względami przez co mocno odstaje od konwencji występującej w większości innych języków programowania ⚠️! Jeżeli kiedykolwiek zaczniesz przyswajać wiedzę innego języka, bądź przygotowany(-a) na to, że będzie to zupełnie inna konstrukcja 🔥!
Ostatnie 2 punkty na koniec w ramach ciekawostki 😉!
JAKIE WARTOŚCI PRZYJMUJE INSTRUKCJA WARUNKOWA W JĘZYKU PYTHON?
Instrukcja warunkowa w Pythonie przyjmuje wyrażenie relacyjne (powstałe z operatorów relacyjnych), wartość lub zmienną w postaci typu logicznego, natomiast one wcale nie muszą przyjmować logicznego typu danych 😱! To może być też na przykład, liczba 👇:
if 500.0:
print('Warunek spełniony')Ten warunek będzie spełniony ✔️! W Pythonie jest tak, że każdy typ danych, którego wartość nie jest "pusta", zostanie zamieniony na wartość logiczną postaci "True" 🔥!
Liczba "uznana" za spełniającą warunek musi być różna od zera, łańcuch znaków musi mieć chociaż jeden znak, a lista (struktura danych przechowująca wiele elementów, która pozwala na modyfikacje i duplikaty oraz zapamiętuje kolejność dodawanych elementów ℹ️) musi mieć chociaż jeden element w sobie 💡. To są przykłady wartości, które nie są "puste" 🙂!
Druga rzecz tytułem wyjaśnienia dla tych, którzy umieją już jakiś język i poznali niejaką "instrukcję wielokrotnego wyboru", czyli "switch" ⏩!
CZY W JĘZYKU PYTHON WYSTĘPUJE INSTRUKCJA WIELOKROTNEGO WYBORU?
Nie. Python nie posiada w sobie instrukcji "switch" jaka występuje w większości innych języków 🚫. Chcąc uzyskać takie samo działanie jak przy instrukcji wielokrotnego wyboru, trzeba "iść na piechotę" i po prostu zdefiniować sobie instrukcję warunkową z blokami "elif" i dla każdego przypadku przypisać inną wartość 🙂.
To wszystko, co trzeba wiedzieć na ten temat 😉. Instrukcja warunkowa w języku Python posiada dużo odstępstw w pisowni od innych języków wysokiego poziomu i trzeba być tego świadomym/świadomą 🙂.
