IF w Pythonie, czyli wstęp do testów warunkowych

Instrukcja warunkowa IF, zwana inaczej poleceniem IF w Pythonie nie różni się od tych występujących w pozostałych językach. To znaczy różnice występują, choćby w zapisie składni, jednak idea działania instrukcji warunkowej IF jest taka sama.

Składnia polecenia IF w Pythonie

if test_warunkowy:

    dowolna akcja

Prosty przykład, gdzie sprawdzamy warunek, czy klient zamówił salami na pizzę. Zmienna zamowioneSkladniki to salami, instrukcja IF sprawdza, poprzez == czy dane zmiennej są równe stringowi salami

zamowioneSkladniki = 'salami'
if zamowioneSkladniki == 'salami':
    print("Klient zamówił salami na pizzę")
Rozszerzymy teraz nasz program o to, by obsłużył przykadek, w którym zmienna zamowioneSkladniki będzie zawierała na przykład szynkę parmeńską:
zamowioneSkladniki = 'Szynka Parmeńska'
if zamowioneSkladniki == 'salami':
    print("Klient zamówił salami na pizzę")
elif zamowioneSkladniki !='salami':
    print("Klient nie zamówił salami a "+zamowioneSkladniki)
W powyższym przykładzie obsłużyliśmy dwa przypadki, gdzie wynik może być albo TRUE albo FALSE i tak działają instrukcje warunkowe IF.

IF sprawdza czy nasz warunek boolowski jest TRUE lub FALSE

Na przykładzie niżej, zastosowaliśmy 3 operatory matematyczne, porównania, mniejszości i większości. Akcja zawarta w instrukcji IF lub else if (ELIF) zostanie wykonana dopiero w tedy, kiedy warunek będzie TRUE, czyli będzie spełniony.

ileMaszLat = 28
if ileMaszLat == 37:
    print("zgadłeś! Autor posta ma 37 lat")
elif ileMaszLat < 37:
    print("Nie zgadłeś, podany wiek jest zbyt mały")
elif ileMaszLat > 37:
    print("Nie, za dużo lat podałeś")

Używamy słowa kluczowego AND i wykorzystujemy łańcuch IF-ELIF-ELSE

Przykład niżej wykorzystuje IF, ELIF (od else if) oraz ELSE (czyli wykonaj jeśli żaden z warunków nie będzie TRUE.

Na początku w zmiennej szukanaLiczba podajemy wartość. Warunki sprawdzają, czy podana wartość jest z przedziałów określonych jako warunki, np szukanaLiczba < 20 AND szukanaLiczba >=10 

Przeanalizuj poniższy kod dokładniej:

szukanaLiczba = 8
if szukanaLiczba == 20:
    print("Szukana liczba jest równa liczbie 20")
elif szukanaLiczba < 20 and szukanaLiczba  >= 10:
    print("Twoja liczba jest mniejsza niż 20 i większa lub równa 10")
elif szukanaLiczba < 10 and szukanaLiczba >= 5:
    print("Twoja liczba jest mniejsza od 10 i większa lub równa 5")
else:
    print("Twoja liczba nie jest większa równa 10 i mniejsza niż 20 oraz nie jest większa lub równa 5 i mniejsza od 10")

Używamy słowa kluczowego OR

Podobnie jak w przypadku słowa kluczowego and stosujemy słowo or. Przeanalizuj poniższy przykład:

szukanaLiczba = 21
if szukanaLiczba < 20 or szukanaLiczba > 30:
    print("Szukana liczba jest mniejsza od 20 lub większa od 30")
else:
    print("warunek nie został spełniony.")

Sprawdzamy instrukcję IF  na listach

W artykule o listach w Pythonie  dowiedzieliśmy się czym są listy i w jaki sposób je tworzyć oraz modyfikować. Wykorzystajmy więc tę wiedzę by szerzej podejść do tematu instrukcji warunkowych IF.

Umówmy się, że jesteśmy administratorem serwisu internetowego i chcemy aby każdy użytkownik miał unikalny nick. Sprawdźmy więc czy podany nick znajduje się na naszej liście:

userNick = ['zosia','staszek','lucek','marian','zbyszek','halina']
sprawdzNick = 'marian'
if sprawdzNick not in userNick:
    print("Podałeś nick "+sprawdzNick+". Możesz się zarejestrować")
elif sprawdzNick in userNick:
    print("Nick ***"+sprawdzNick+"*** znajduje się w naszej bazie. \nWybierz inny!")
W obsłudze naszych komunikatów zastosowaliśmy metodę title(), dzięki której zamieniliśmy pierwszą literę obsługiwanego w programie nicku na wielką.
w podobny sposób możemy traktować string, który chcemy porównywać, sprowadzając go zawsze do małych znaków, służy temu metoda lower().

Zastosowanie break w instrukcji IF

Napiszmy program, sprawdzający, czy na liście loginów w naszym serwisie internetowym znajduje się ten, który wpisał użytkownik – tutaj w zmiennej twojLogin:

users = ['admin','bot','operator','alek','maja']
twojLogin = 'bot'
if twojLogin in users:
    print(f"Witaj {twojLogin}")
else:
    print(f"Nie ma użytkownika o loginie {twojLogin}")