W Pythonie, podobnie jak w wielu innych językach programowania, pętle są podstawowym narzędziem do wykonania bloku kodu wielokrotnie. Python oferuje jednak unikalną cechę, której nie znajdziesz w wielu innych językach: klauzulę else
dołączoną do pętli. To może brzmieć dziwnie, ponieważ większość programistów kojarzy else
głównie z instrukcjami warunkowymi if
. Jednak w kontekście pętli, else
pełni inną, bardzo użyteczną funkcję. Przeanalizujmy, jak działa i kiedy może być przydatna.
Przykład z klauzulą “else” w pętli
Zanim zagłębimy się w szczegóły, przejrzyjmy przykład użycia else
w pętli. Komentarze po polsku pomogą Ci zrozumieć, co dokładnie się dzieje.
# Przykład zastosowania klauzuli "else" w pętli
# Szukamy liczby pierwszej w zakresie od 2 do 10
for n in range(2, 10):
# Dla każdej liczby n sprawdzamy, czy jest liczbą pierwszą
for x in range(2, n):
# Jeśli n jest podzielne przez x, n nie jest liczbą pierwszą
if n % x == 0:
print(f"{n} equals {x} * {n//x}")
break
# Klauzula else pętli for: wykonuje się tylko, gdy pętla nie została przerwana instrukcją break
else:
# Jeśli nie znaleziono dzielnika, liczba jest pierwsza
print(f"{n} is a prime number")
Jak działa klauzula “else” w pętlach?
Klauzula else
w pętlach for
lub while
w Pythonie ma specyficzną semantykę. Wykonuje się wtedy, gdy pętla zakończy działanie normalnie, czyli nie została przerwana przez break
. To oznacza, że kod w bloku else
uruchomi się tylko wtedy, gdy pętla “wyczerpie” swoje elementy (w przypadku for
) lub warunek stanie się fałszywy (w przypadku while
), nie zaś gdy zostanie przerwana instrukcją break
.
Dlaczego i kiedy używać “else” z pętlami?
Klauzula else
może być przydatna, gdy potrzebujemy wykonać jakąś akcję po zakończeniu pętli, ale tylko jeśli pętla nie została przerwana przez break
. Jest to szczególnie użyteczne w przypadkach, gdy:
- Szukamy określonego elementu w sekwencji i chcemy wykonać pewną akcję, jeśli ten element nie został znaleziony (jak w przykładzie z liczbami pierwszymi).
- Chcemy wykonać pewną akcję po przeszukaniu całej sekwencji i potwierdzeniu, że żaden element sekwencji nie spowodował przerwania.
Podsumowanie
Klauzula else
w pętlach to potężne narzędzie, które może uczynić niektóre algorytmy bardziej czytelne i eleganckie. Pozwala na wyraźne oddzielenie logiki wykonywanej w przypadku “normalnego” zakończenia pętli od logiki wykonywanej w przypadku jej przerwania. Choć jej użycie nie jest powszechne w codziennym kodowaniu, zrozumienie tego mechanizmu jest ważne dla każdego, kto chce pogłębić swoją wiedzę o Pythonie i o programowaniu w ogóle.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Python w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.