Centrum wiedzy o technologiach i pracy w IT
pętla while python

Jak działa pętla while w Pythonie? Przykłady kodu

Ostatnia aktualizacja 4 marca, 2024

Pętla while jest jednym z podstawowych sposobów na wykonanie iteracji w języku programowania Python. Służy do powtarzania określonego fragmentu kodu, dopóki spełniony jest pewien warunek. Pętla ta jest niezwykle użyteczna, gdy nie znamy liczby iteracji przed rozpoczęciem pętli. Jak wygląda jej wykorzystanie w praktyce?

Nie udało się zapisać Twojej subskrypcji. Spróbuj ponownie.
Udało się! Widzimy się niebawem – newsletter wysyłamy w każdy wtorek

Otrzymuj za darmo unikalne poradniki, dane i wiedzę o pracy w IT – dostarczane co tydzień

Klikając “Zapisz mnie” wyrażasz zgodę na otrzymywanie e-maili od redakcji, a także ofert partnerów oraz akceptujesz naszą Politykę prywatności.

Zasada działania

Pętla while sprawdza warunek przed wykonaniem kodu wewnątrz pętli. Jeśli warunek jest spełniony (wynik to True), kod wewnątrz pętli jest wykonywany. Następnie warunek jest ponownie sprawdzany i proces się powtarza, dopóki warunek nie przestanie być spełniony (wówczas wynik to False), co skutkuje zakończeniem pętli.

Składnia z pętlą while

Podstawowa składnia pętli while w Pythonie wygląda następująco:

while warunek:
    # Kod do wykonania

Poniższy przykład demonstruje użycie pętli while do wydrukowania liczb od 1 do 5.

i = 1
while i <= 5:
    print(i)
    i += 1

Pętla while Python – zastosowania

Nieskończona pętla

Pętla while może być używana do tworzenia nieskończonych pętli. Może to być przydatne w aplikacjach serwerowych lub w pętlach zdarzeń.

while True:
    # Kod, który będzie wykonany w nieskończoność
    pass

Warto jednak wiedzieć, że unikanie nieskończonych pętli jest ogólnie zalecane w większości przypadków programowania. Głównym powodem jest to, że mogą powodować zawieszenie się programu lub nadmierne zużycie zasobów systemowych. Taka sytuacja ostatecznie prowadzi do problemów z wydajnością lub nawet awarii systemu. Jednak w niektórych specyficznych scenariuszach nieskończone pętle mogą być faktycznie przydatne, wówczas ich użycie jest celowe.

Kiedy unikać nieskończonych pętli?

  • W aplikacjach z ograniczonymi zasobami: Na urządzeniach z ograniczoną pamięcią RAM lub mocą procesora, nieskończone pętle mogą szybko zapełnić dostępne zasoby, powodując spowolnienie lub zawieszenie systemu.
  • W kodzie, który powinien zakończyć się po wykonaniu zadania: Jeśli celem programu jest wykonanie określonego zestawu operacji i zakończenie, nieskończone pętle mogą uniemożliwić osiągnięcie tego celu.

Kiedy nieskończone pętle mogą być przydatne?

  • W aplikacjach serwerowych: Serwery często działają w nieskończonych pętlach, oczekując na przychodzące połączenia od klientów. W tym kontekście nieskończona pętla pozwala serwerowi działać nieprzerwanie, obsługując żądania przez cały czas swojego działania.
  • W pętlach zdarzeń w interfejsach użytkownika: Aplikacje z graficznym interfejsem użytkownika (GUI) często używają nieskończonych pętli do oczekiwania na zdarzenia od użytkownika, takie jak kliknięcia myszą czy naciśnięcia klawiszy i reagowania na nie w czasie rzeczywistym.
  • W systemach wbudowanych i mikrokontrolerach: W wielu aplikacjach na mikrokontrolery, takich jak systemy monitorujące czy kontrolery urządzeń, programy często działają w nieskończonych pętlach, cyklicznie sprawdzając stan sensorów lub wykonując określone zadania kontrolne.

Jak bezpiecznie używać nieskończonych pętli?

Aby zapewnić, że nieskończone pętle będą działać bezpiecznie i efektywnie, warto stosować pewne praktyki, takie jak:

  • Implementacja mechanizmów przerwania: Zapewnienie sposobu na bezpieczne wyjście z pętli, na przykład poprzez warunek sprawdzający stan zewnętrznego wyzwalacza (np. przycisku) lub sygnału.
  • Ograniczenie zużycia zasobów: W przypadku pętli, które mogą potencjalnie generować duże obciążenie, warto implementować mechanizmy ograniczające, takie jak uśpienie (sleep) między iteracjami, aby zredukować zużycie procesora.
  • Monitorowanie stanu aplikacji: W szczególnie krytycznych aplikacjach monitoring wydajności i zdolności aplikacji do reagowania na zewnętrzne zapytania może pomóc w zapewnieniu, że nieskończona pętla nie wpłynie negatywnie na system.

Pętla z warunkiem złożonym

Pętle while mogą obsługiwać złożone warunki, co pozwala na bardziej elastyczne sterowanie przepływem programu.

i = 0
while i < 10 and not i == 5:
    print(i)
    i += 1


Kod używa pętli while do drukowania wartości zmiennej i od 0 do 9, z wyjątkiem liczby 5. Warunek pętli while i < 10 and not i == 5 sprawia, że pętla pomija iterację, w której i jest równe 5, przez co liczba 5 nie jest wyświetlana. Po każdej iteracji wartość i zwiększa się o 1, aż osiągnie wartość 10, kiedy to warunek pętli przestaje być spełniony i pętla się kończy.

Użycie z else

Pętla while może być połączona z instrukcją else. Blok else jest wykonywany, gdy warunek pętli while staje się False.

i = 1
while i <= 5:
    print(i)
    i += 1
else:
    print("Pętla zakończona")

Kod sekwencyjnie wyświetla liczby od 1 do 5, używając pętli while, która zwiększa wartość i o 1 przy każdym obiegu. Po zakończeniu pętli, dzięki blokowi else wyświetlany jest komunikat “Pętla zakończona”, sygnalizujący koniec działania pętli.

Przydatne wskazówki podczas wykorzystywania pętli while

  • Zawsze upewnij się, że warunek pętli w pewnym momencie przestanie być spełniony, aby uniknąć nieskończonych pętli, chyba że mają swoje uzasadnienie.
  • Użyj zmiennej sterującej (np. i w przykładach) do monitorowania liczby iteracji lub do kontroli logiki pętli.
  • Staraj się, aby warunki były jak najprostsze. Może to przyczynić się do zwiększenia czytelności i wydajności kodu.

Dziękujemy, że przeczytałaś/eś nasz artykuł. Obserwuj EnterTheCode.pl w Wiadomościach Google, aby być na bieżąco.

Czytaj także:

Składnia Pythona. Przegląd podstawowych elementów

Jak działa pętla for w C++? Przykłady kodu

Total
0
Shares
_podobne artykuły