Przejdź do treści
Strona główna » Darmowy kurs Python online » Python: pętla while

Python: pętla while

Pętla while powtarza sekwencję instrukcji, dopóki spełnione jest określone wyrażenie. Warunek podawany jest przed treścią pętli i sprawdzany przed każdym wykonaniem jej treści. Zwykle pętli while używamy, gdy nie wiemy z góry jaka będzie dokładna liczba iteracji.

Pętla while python
Działanie pętli while

Przykład 1. Zasada działania pętli while

# Pętla while
licz = 0
while (licz < 3):
licz = licz + 1
print(str(licz) + " witaj")

W przykładzie powyżej inicjalizujemy zmienną licz wartością 0, po czym przechodzimy do pętli while. Warunkiem wykonania bloku instrukcji jest wartość zmiennej licz poniżej 3. Wewnątrz pętli, za każdą iteracją zwiększamy wartość zmiennej licz o 1 i wyświetlamy na konsoli tekst “Witaj”. Instrukcje wewnątrz pętli zostaną wykonane trzy razy, po czym zmienna licz osiągnie wartość 3 i nie zostanie spełniony warunek licz<3. Zatem wynik działania programu będzie następujący:

Wynik

1 witaj
2 witaj
3 witaj

Przykład 2. Pętla while w jednej linii

# Pętla while w jednej linii
lista = []
while (len(lista) < 5): lista.append(1)
print(lista)

W przykładzie powyżej tworzymy pustą listę. Pętla w każdej iteracji dodaje do listy element o wartości 1. Instrukcja jest powtarzana dopóki długość listy jest mniejsza niż 5. Po zakończeniu działania pętli wyświetlamy listę. Wynik działania programu jest następujący:

Wynik

[1, 1, 1, 1, 1]

Przerwanie działania pętli – instrukcje break and continue

Mamy do dyspozycji dwie instrukcje sterujących, które możemy wykorzystać do przerwania działania pętli:

  • Break – natychmiast kończy pętlę. Program przechodzi do pierwszej instrukcji następującej po treści pętli.
  • Continue – przerywa bieżącą iterację pętli. Program przeskakuje na początek pętli, a wyrażenie sterujące jest ponownie oceniane w celu ustalenia, czy pętla zostanie wykonana ponownie, czy też zakończy się.
Break and continue
Break i continue

Przykład 3. Instrukcja break

# Przykład instrukcji break
n = -5
while n < 0:
n += 1
if n == -2:
break
print(n)
print('Koniec')

Wynik

-4
-3
Koniec

W przykładzie powyżej widzimy, że działanie instrukcja break przerwała działanie pętli w momencie, gdy wartość zmiennej n wynosiła -2. Program automatycznie przeskoczył do instrukcji następującej po pętli.

Przykład 4. Instrukcja continue

# Przykład instrukcji continue
n = -5
while n < 0:
n += 1
if n == -2:
continue
print(n)
print('Koniec')

Wynik

-4
-3
-2
-1
Koniec

W przykładzie powyżej widzimy, że w momencie, gdy wartość zmiennej n wynosiła -2, to program przeskoczył do następnej iteracji, pomijając linię print.

Pętla nieskończona

Jednym z zagadnień, które warto rozważyć jest utworzenie nieskończonej pętli, co może nie wydawać się oczywiste. Rozważmy następujący przykład:

# Pętla nieskończona
while True:
print("A")

Program ten będzie wyświetlał na konsoli tekst “A” w “nieskończoność”, a w zasadzie do momentu, gdy przerwiemy jego działanie (na przykład przez użycie skrótu klawiszowego ctrl+c). Przyczyną jest to, że warunek decydujuący o kontynuowaniu działania pętli jest zawsze spełniony (True). Kiedy zatem taka pętla może się przydać? Możesz na przykład napisać kod dla usługi, która uruchamia się i działa cały czas, akceptując żądania. Ponadto, pętle można przerwać za pomocą instrukcji break, tak jak to przedstawiono w kodzie poniżej. Takie rozwiązanie może okazać się prostsze niż użycie warunku w pierwszej linii pętli.

Przykład 5. Pętla nieskończona

while True:
if <wyrażenie>:  # Pierwszy warunek zakończenia pętli
break
if <wyrażenie>:  # Drugi warunek zakończenia pętli
break
if <wyrażenie>:  # Trzeci warunek zakończenia pętli
break

Klauzula else

Python pozwala na opcjonalną klauzulę else na końcu pętli while. Ta cecha jest niespotykana w większości innych języków programowania. Składnia jest następująca:

while <wyrażenie>:
<instrukcja 1>
else:
<instrukcja 2>

Możemy się zastanowić jaka jest różnica pomiędzy umieszczeniem instrukcji bezpośrednio po pętli, a użyciem klauzuli else. Różnica polega na tym, że program wywoła instrukce zawarte wewnątrz klauzuli else jedynie wtedy, gdy pętla zakończy swoje działanie poprzez spełnienie warunku określonego w pierwszej linii pętli. Jeśli natomiast pętla zostanie przerwana poprzez break lub continue, to instrukcje znajdujące w else nie zostaną wywołane.

n = -5
while n < 0:
n += 1
print(n)
if n == -2:
break
else:
print('Koniec')

Wynik

-4
-3
-2

W przykładzie powyżej widzimy, że program nie wywołał instrukcji print(‘Koniec’) ponieważ instrukcja break przerwała działanie pętli.

Podsumowanie

Z tego artykułu nauczyłeś się jak wykorzystać pętle while w Pythonie. Wiesz teraz jak:

  • konstruować proste i złożone pętle while,
  • przerwać wykonywanie pętli za pomocą break i continue,
  • używać nieskończonej pętli,
  • używać klauzuli else wraz z pętlą while.

#python pętla while #kurs python