Instrukcja warunkowa IF

instrukcja warunkowa if python

Decyduj o własnym losie! Instrukcja warunkowa IF

Pierwsze kroki masz już za sobą a więc możemy powoli zanurzać się w świecie programowania. Teraz poznasz jedną z najważniejszych funkcji każdego języka programowania. Utrwalisz sobie instrukcje wejścia i wyjścia oraz zmienne. Spójrz na ilustracje poglądową.

Instrukcja warunkowa if python

Nie ma co przedłużać wstępu czas brać się za robotę.

Instrukcja IF

Instrukcja warunkowa wygląda następująco if():. Składa się ze słowa kluczowego if i nawiasów okrągłych (). Gdzie zawsze znajduje się warunek logiczny funkcji. Na końcu zawsze jest znak : a pod spodem instrukcje do wykonania oczywiście po wcięciu. Zacznijmy od prostego fragmentu kodu na rozgrzewkę.

liczba = int(input("Przybij piatke: "))
if(liczba == 5): #sprawdzamy czy podana liczba jest równa 5
    print("Dziekuje") #jeżeli tak to wypisujemy pirnt

Program nie jest skomplikowany. Sprawdza on czy użytkownik podał liczbę 5 jeżeli tak to wypisuje na ekranie „Dziekuje”. Jeżeli nie to kończy jego działanie. Zwróć uwagę że porównanie dwóch wartości odbywa się przy użyciu podwójnego znaku równości „==„. Pojedynczy znak równości „=” służy do przypisania wartości zmiennej. Prawda że proste? Aby lepiej zrozumieć tą bardzo ważną funkcję przeanalizujmy jeszcze parę przykładów ale najpierw pokaże Ci kilka znaków porównania.

Mniejsze <
Większe >
Równe ==
Mniejsze lub równe <=
Większe lub równe >=
Różne !=

Instrukcja if else

Pora na trochę bardziej rozbudowany przykład użycia if.

aktualny_rok = 2021 #tworzymy zmienną i nadajemy jej wartość
rok_urodzenia = int(input("Podaj rok urodzenia: ")) #tworzymy zmienną
if(aktualny_rok - rok_urodzenia >= 18): #warunek funkcji if
    print("Jestes pelnoletni") #ciało funkcji
else:
   print("Nie jestes pelnoletni") #alternatywa dla ifa

Wiele rzeczy w kodzie już się powtarza. Jeżeli jednak są dla Ciebie obce kliknij w ten link INSTRUKCJE WEJŚCIA I WYJŚCIA. Przejdźmy od razu do linijki gdzie pojawia się if(aktualny_rok – rok_urodzenia >= 18):. Jak widzisz w nawiasach okrągłych (czyli typowych dla każdej funkcji) dzieje się dojść dużo. Od aktualnego roku (zainicjalizowanego w kodzie) odejmujemy rok urodzenia (podany przez użytkownika). Jeżeli wartość otrzymana z tej różnicy jest większa lub równa 18 to print wypisuje że użytkownik jest pełnoletni. W przeciwnym wypadku czyli else: program wypisuje że użytkownik jest niepełnoletni. Zwróć uwagę że zarówno if jak i else posiadają nawiasy klamrowe a na końcu zawsze znajduje się dwukropek. Else zawsze jest instrukcją alternatywną dla ifa razem tworzą nierozłączną parę.

Użycie if elif i else

BMI obliczamy dzieląc masę ciała (w kilogramach) przez wzrost do kwadratu (w metrach). Wskaźnik ten wykorzystywany jest przede wszystkim do oceny ryzyka pojawienia się groźnych chorób. Jest to krótki wstęp do kolejnego programu. W fragmencie będą użyte wartości zmiennoprzecinkowe (ułamkowe) a je w Pythonie zapisuje się po kropce czyli 1.5 zamiast 1,5 tak jak zazwyczaj to robimy w na co dzień.

waga = float(input("Podaj swoja wage [kg]: ")) #tworzymy zmienną "waga" typu float
wzrost = float(input("Podaj swoj wzrost [m]: ")) #kolejna zmianna typu float
bmi = waga / (wzrost * wzrost) #obliczamy bmi 
if(bmi < 18): #klasyczne użycie ifa
    print("Masz niedowage")
elif(bmi > 25): #jeżeli bmi < 18 to sprawdź czy jest większe od 25
    print("Masz nadwage")
else: #żaden warunek nie jest spełniony więc pozostaje to
    print("Waga jest prawidlowa")
print("Twoje BMI wynosi", bmi) #wypisanie "bmi"

Ten fragment chociaż wygląda strasznie nie należy się go bać. Zawiera on tylko dwie nowe rzeczy. Pierwszą z nich jest nowy typ zmiennych float. Jest to typ ułamkowy pojedynczej precyzji jak mogłeś już to zauważyć (podawanie wzrostu w metrach). Kolejną nową rzeczą jaka się pojawiła w kodzie jest elif. Jest to alternatywa dla alternatywy. Najłatwiej będzie jak wytłumaczę słownie linijki 4-9. Do programu należy podawać wartość w formie ułamka dziesiętnego np: dla wzrostu będzię to wartość 1.8 zamiast 180.

Jeżeli bmi jest mniejsze niż 18 to napisz „Masz niedowage”. Jeżeli nie to sprawdź czy bmi jest większe od 25 wtedy napisz „Masz nadwagę”. W przeciwnym wypadku napisz „Waga jest prawidłowa”.

Zobacz że tym sprytnym sposobem utworzyliśmy trzy przedziały liczbowe a do każdego z nich daliśmy odpowiedni napis. Teraz pora na kolejny przykład.

Zagnieżdżone if

wybor = int(input("Potrafisz programowac. 1-TAK 0-NIE "))
if(wybor == 0):
    wybor = int(input("Czy widziales poprzednia lekcje? 1-TAK 0-NIE "))
    #nadpisujemy zmienna "wybor" nową wartością
    if(wybor == 0):
        print("Zapraszam do obejrzenia")
        
    elif(wybor == 1):
        print("Bardzo sie ciesze")
        
    else:
        print("Blad zla wartosc")
       
elif(wybor == 1):
    print("Gratulacje!")
else:
    print("Blad zla wartosc")

Jeżeli wstępnie przeanalizowałeś kod mniej więcej wiesz o co w nim chodzi. Najlepiej będzie jak wkleisz sobie go do kompilatora i potestujesz. Nie dodałem do niego żadnych komentarzy po to aby był jak najbardziej czytelny. Coś co rzuca się w oko to że w ciele ifa jest kolejny if i nie ma w tym nic zaskakującego. Bardzo często będziesz natrafiał na takie przypadki w programowaniu. Pokazałem Ci to abyś wiedział że tak naprawdę nie ma żadnych ograniczeń w pisaniu kodu. Warto abyś wiedział że można korzystać z takiego rozwiązania. O ciekawszych zastosowaniach instrukcji warunkowej dowiesz na kolejnych lekcjach. Nie ma sensu aby rozpisywać tutaj kolejne przypadki użycia ponieważ jest ich nieskończenie wiele. Gdy będziemy przerabiać inne fragmenty kodu w dalszej części tego bloga zobaczysz inne zastosowania.

Podsumowanie

Instrukcja warunkowa if jest bardzo potrzebna i warto abyś dobrze ją znał. Przeanalizuj sobie kody programów i dowolnie je modyfikuj w taki sposób abyś miał z tego jak najwięcej frajdy. Naprawdę nie ma czego się obawiać w ifach. Pamiętaj aby w nawiasach funkcji wpisywać warunek logiczny i zawsze kończyć go dwukropkiem tak jak ja to robiłem do tej pory. W języku Python bardzo ważne jest wcięcie w kodzie, nie możesz o nim zapominać. Komputer jest maszyną zero jedynkową więc jeżeli w nawiasach będzie tylko nazwa zmiennej (if(zmienna)) t0 kompilator domyślnie będzie to uznawał jako prawdę. Wyjątkiem będzie przypadek w którym zmienna ma wartość zero. Dziękuję za lekturę i zapraszam do dalszej części.