Python If/Else dla początkujących
Wyobraź sobie, że Twój kod to statek kosmiczny. Przy każdym rozwidleniu w planie misji program musi podjąć decyzję: włączyć silniki, utrzymać orbitę, czy przerwać misję. W Pythonie te decyzje podejmowane są za pomocą if, elif i else. Ten artykuł przeprowadzi początkujących przez instrukcje warunkowe z prostymi analogiami, czytelnymi przykładami i krótkimi ćwiczeniami, abyś mógł sterować własnymi misjami w Pythonie.
Czym jest instrukcja if?
Instrukcja if pozwala programowi wykonać akcję tylko wtedy, gdy warunek jest prawdziwy.
fuel_percent = 75
if fuel_percent > 50:
print("Kontynuuj manewr wejścia na orbitę.")
Jeśli fuel_percent > 50 zwraca True, wykonywany jest wcięty blok kodu. Jeśli zwraca False, Python pomija cały blok.
else — plan awaryjny
Użyj else, aby wykonać kod, gdy warunek if jest fałszywy.
fuel_percent = 30
if fuel_percent > 50:
print("Kontynuuj manewr wejścia na orbitę.")
else:
print("Przerwij manewr — wróć na bezpieczną orbitę.")
Pomyśl o tym tak: if to zielone światło dla misji; else to plan awaryjny.
elif — wiele punktów kontrolnych
elif (skrót od "else if") obsługuje więcej niż dwie opcje.
fuel_percent = 50
if fuel_percent > 50:
print("Pełne spalanie dozwolone.")
elif fuel_percent == 50:
print("Kontynuuj ostrożnie — graniczny poziom paliwa.")
else:
print("Przerwij manewr — za mało paliwa.")
Python sprawdza warunki od góry do dołu i wykonuje pierwszą prawdziwą gałąź. Gdy jedna gałąź zostanie wykonana, reszta jest pomijana.
Typowe rodzaje warunków
Oto, czego będziesz używać najczęściej przy pisaniu warunków:
- Porównania:
==,!=,<,>,<=,>= - Operatory logiczne:
and,or,not - Przynależność:
in,not in - Prawdziwość: wartości takie jak
0,"",[],None,Falsesą traktowane jakoFalsew warunkach
Przykład łączenia warunków:
temperature_c = -120
communications_online = True
if temperature_c > -100 and communications_online:
print("Kontynuuj operacje na powierzchni.")
else:
print("Opóźnij operacje do poprawy warunków.")
Krótki przewodnik po prawdziwości
Nie zawsze potrzebujesz porównania. Python ocenia wartość bezpośrednio:
payloads_ready = [] # pusta lista jest fałszywa
if payloads_ready:
print("Rozpocznij rozmieszczanie ładunku.")
else:
print("Brak ładunków — pomiń rozmieszczanie.")
Puste listy, puste łańcuchy znaków, zero i None są oceniane jako False. Praktycznie wszystko inne to True.
Zagnieżdżanie: decyzje w decyzjach
Możesz zagnieżdżać bloki if, ale dbaj o czytelność.
fuel_percent = 65
system_check_passed = False
if fuel_percent > 50:
if system_check_passed:
print("Start!")
else:
print("Wstrzymaj: kontrola systemów nie powiodła się.")
else:
print("Przerwij: niewystarczające paliwo.")
Jeśli zagnieżdżenie staje się głębokie, rozważ połączenie warunków lub wyodrębnienie logiki do funkcji.
Łańcuchowe porównania
Python obsługuje wyrażenia typu a < b < c, które są interpretowane intuicyjnie:
altitude = 1200
if 1000 < altitude < 2000:
print("W bezpiecznym korytarzu.")
To czyta się naturalnie i oszczędza pisania altitude > 1000 and altitude < 2000.
Typowe błędy początkujących (i jak ich unikać)
Złe wcięcia: Python wymaga konsekwentnych wcięć (zalecane 4 spacje). Jeśli kod nie działa zgodnie z oczekiwaniami, sprawdź najpierw odstępy.
Używanie = zamiast ==: Pojedynczy = przypisuje wartość, podwójny == porównuje. Ten błąd przytrafia się każdemu przynajmniej raz.
Zbyt złożone warunki: Rozbij je na nazwane zmienne boolowskie dla przejrzystości.
safe_fuel = fuel >= 60
good_weather = wind_speed < 20
if safe_fuel and good_weather:
launch = True
Poleganie na równości liczb zmiennoprzecinkowych: Unikaj == z floatami; używaj zakresów lub abs(a - b) < epsilon.
Wskazówka debugowania: wypisuj warunki
Jeśli gałąź nie wykonuje się, wypisz wartości, które testujesz:
print("paliwo:", fuel_percent, "system:", system_check_passed)
Lub używaj asercji podczas rozwoju:
assert isinstance(fuel_percent, (int, float)), "paliwo musi być liczbą"
Krótki praktyczny przykład — prosty planer misji
def launch_decision(fuel, weather, comms):
if fuel < 40:
return "Przerwij: niski poziom paliwa"
elif not comms:
return "Przerwij: komunikacja offline"
elif weather == "storm":
return "Opóźnij: zła pogoda"
else:
return "Start dozwolony"
print(launch_decision(80, "clear", True)) # -> Start dozwolony
Ćwiczenia (spróbuj sam)
1. Sprawdzanie paliwa: Napisz if/else, który wypisuje "Start" jeśli fuel >= 75, w przeciwnym razie "Tankuj".
2. Lista kontrolna dokowania: Mając dock_ready (bool) i crew_onboard (int), wypisz "Dokuj" tylko jeśli dock_ready jest True i crew_onboard >= 3.
3. Wskaźnik temperatury: Wypisz "Za zimno", "Optymalnie" lub "Za gorąco" w zależności od zakresów temperatury: < -100, -100..50, > 50.
Podsumowanie
Instrukcje warunkowe to sposób, w jaki Twoje programy podejmują decyzje. Zacznij od prostych bloków if/else, dodaj elif gdy potrzebujesz więcej gałęzi i dbaj o czytelność warunków. Gdy opanujesz te podstawy, będziesz gotowy do obsługi bardziej złożonej logiki misji w swoich projektach Pythona.