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 👇:

  1. mamy dostateczną sumę pieniędzy i możemy to sobie kupić,
  2. 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 👇:

  1. słowo kluczowe "if",
  2. wartość logiczna, zmienna lub warunek utworzony z operatorów relacyjnych,
  3. znak dwukropka (obowiązkowa rzecz, bez której będzie błąd składniowy 🚫),
  4. 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 👇:

  1. słowo kluczowe "else",
  2. znak dwukropka (obowiązkowa rzecz, bez której będzie błąd składniowy 🚫),
  3. 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

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ą 🙂.

PODOBNE ARTYKUŁY