Kurs Python · Moduł 1: Podstawy Pythona

Kontrola przepływu - Wybór ścieżki w dżungli

3 min czytania ·
W tej lekcji6

Witaj! Stoimy na rozstaju szlaków. Jedna ścieżka prowadzi przez rzekę, druga przez gęsty las. Dobry badacz musi podejmować decyzje na podstawie warunków. W Pythonie do podejmowania decyzji służą instrukcje warunkowe: if, elif i else.

Instrukcja if - Jeśli warunek jest spełniony

Słowo if (z angielskiego "jeśli") sprawdza warunek. Jeśli warunek jest True, Python wykona wcięty blok kodu. Jeśli False - pominie go.

temperature = 35

if temperature > 30:
    print("Gorąco! Zostań w cieniu.")
    print("Pamiętaj o piciu wody.")

Zwróć uwagę na trzy rzeczy: po warunku stawiamy dwukropek :, a kod do wykonania jest wcięty (zwykle 4 spacje). To wcięcie mówi Pythonowi: "to należy do warunku". Warunek to wyrażenie zwracające True lub False - dokładnie to, czego nauczyłeś/aś się przy operatorach porównania.

if / else - Dwie ścieżki

Często chcemy zrobić jedną rzecz, gdy warunek jest spełniony, a inną - gdy nie. Do tego służy else ("w przeciwnym razie").

water_supply = 2   # litry

if water_supply >= 3:
    print("Mamy dość wody na dziś.")
else:
    print("Mało wody! Trzeba znaleźć źródło.")

Python sprawdza warunek przy if. Jeśli jest True - wykona blok if. Jeśli False - przeskoczy do bloku else. Zawsze wykona się dokładnie jedna z dwóch ścieżek.

if / elif / else - Wiele ścieżek

A co, jeśli ścieżek jest więcej niż dwie? Wyobraź sobie, że oceniamy temperaturę: gorąco, przyjemnie albo zimno. Do tego służy elif (skrót od "else if" - "w przeciwnym razie jeśli"). Możesz dodać tyle bloków elif, ile potrzebujesz.

temperature = 22

if temperature > 30:
    print("Gorąco w dżungli!")
elif temperature >= 15:
    print("Przyjemna temperatura na marsz.")
elif temperature >= 5:
    print("Chłodno, weź kurtkę.")
else:
    print("Zimno! Rozpal ognisko.")

Python sprawdza warunki po kolei, od góry. Wykonuje blok pierwszego warunku, który jest True, i pomija resztę. Jeśli żaden warunek nie pasuje, wykona blok else (o ile istnieje). Dlatego kolejność ma znaczenie - sprawdzamy od najbardziej szczegółowych warunków.

Łączenie warunków w decyzjach

Pamiętasz operatory logiczne and, or, not? Świetnie sprawdzają się w instrukcjach warunkowych:

temperature = 28
is_raining = False

if temperature > 20 and not is_raining:
    print("Idealne warunki - wyruszamy na safari!")
else:
    print("Zostajemy w obozie.")

Praktyka

Napisz program, który ocenia, czy zwierzę jest niebezpieczne, na podstawie jego wagi. Uruchom kod w edytorze i zmień wartość weight (np. na 190 albo 5), żeby zobaczyć, która gałąź się wykona:

Kod do tej lekcji: main.py
# Kontrola przepływu - czy zwierzę jest niebezpieczne?

animal = "Słoń"
weight = 5000   # kg

# TODO: uzupełnij warunki if / elif / else
if weight > 1000:
    print(f"{animal} to duże zwierzę - zachowaj dystans!")
elif weight >= 100:
    print(f"{animal} - średniej wielkości, bądź ostrożny.")
else:
    print(f"{animal} - małe zwierzę, bezpieczne.")

# Spróbuj zmienić weight na 190 albo 5 i uruchom ponownie!

Podsumowanie

W tej lekcji nauczyłeś/aś się podejmować decyzje w kodzie:

  • if - wykonuje kod, gdy warunek jest True
  • else - wykonuje kod, gdy warunek jest False
  • elif - sprawdza kolejne warunki, gdy poprzednie były False
  • Znaczenie dwukropka : i wcięcia w blokach
  • Łączenie warunków z and, or, not

W następnej lekcji Darwin nauczy Cię pętli - jak powtarzać czynności bez przepisywania kodu!

Hasła z dokumentacji w tej lekcji

Widzisz błąd w tej lekcji?

Sprawdź się

Odpowiedz na pytania z tej lekcji. Wybierz odpowiedź, a od razu zobaczysz, czy jest poprawna.

  1. 1. Kiedy wykona się wcięty blok po if?

  2. 2. Do czego służy elif?

  3. 3. Co stawiamy na końcu linii z warunkiem if?

Zadania praktyczne w grze

  • Układanie w pionie

    Uporządkuj instrukcję warunkową:

Przydatne artykuły