Wyjaśnienie lekcji
Po tej lekcji będziesz potrafić:
if, elif i else przy decyzjach dwu- i wielowariantowych.and, or i not.Warunek decyduje, czy blok kodu zostanie wykonany. Użyj if dla pierwszej reguły, elif dla kolejnych reguł, a else jako rozwiązania awaryjnego, gdy żaden wcześniejszy warunek nie jest spełniony.
Python sprawdza gałęzie od góry do dołu i zatrzymuje się na pierwszej prawdziwej. Dlatego kolejność gałęzi jest częścią logiki. Zbyt wcześnie umieszczona ogólna reguła może przesłonić bardziej szczegółową regułę znajdującą się niżej.
Warunki mogą wykorzystywać znane Ci już porównania i operatory logiczne:
age >= 18
role == "admin" and is_active
is_vip or order_total >= 100
not is_suspendedKażdy wiersz gałęzi kończy się dwukropkiem, a kod w niej jest wcięty. Ta lekcja korzysta z tej struktury; osobna lekcja o blokach omówi dokładniej wcięcia, bloki zagnieżdżone i symbole zastępcze.
Użyj if i else, gdy ma zostać wybrany dokładnie jeden z dwóch wyników.
maintenance_mode = False
if maintenance_mode:
print("Service unavailable")
else:
print("Service online")Wynik:
Service onlineWykonuje się tylko jedna gałąź.
Użyj elif, gdy ta sama wartość może należeć do jednej z kilku uporządkowanych kategorii.
battery_level = 42
if battery_level >= 80:
print("Battery: high")
elif battery_level >= 30:
print("Battery: medium")
else:
print("Battery: low")Wynik:
Battery: mediumPierwszy warunek jest fałszywy, więc Python sprawdza kolejną gałąź.
Operatory logiczne pozwalają, by jedna gałąź zależała od kilku faktów.
role = "editor"
is_verified = True
if role == "editor" and is_verified:
print("Publishing enabled")
else:
print("Publishing blocked")Wynik:
Publishing enabledObie strony and muszą być prawdziwe.
Wygrywa pierwsza prawdziwa gałąź, więc kolejność reguł ma znaczenie.
error_count = 12
if error_count >= 10:
print("Alert: critical")
elif error_count > 0:
print("Alert: warning")
else:
print("Alert: clear")Wynik:
Alert: criticalGdyby reguła ostrzeżenia była pierwsza, przypadek krytyczny nigdy nie zostałby osiągnięty.
| Decyzja | Struktura w Pythonie |
|---|---|
| Wykonaj kod tylko wtedy, gdy reguła pasuje | if condition: |
| Dodaj kolejny warunek | elif condition: |
| Obsłuż wszystko pozostałe | else: |
| Wymagaj obu reguł | and |
| Zaakceptuj dowolną z reguł | or |
| Odwróć sprawdzenie logiczne | not |
else if; Python używa elif.if, gdy ma zostać wybrany tylko jeden wynik.else nie ma warunku.