Przejdź do tematu:
Pętla while w Pythonie
Przejdź do ćwiczenia:
Programowanie w Pythonie
Włącz widok pełnoekranowy

Korzystasz z platformy z limitem dziennym na liczbę odpowiedzi. Aby zwiększyć limit lub uzyskać dostęp do konta z licencją, zaloguj się.

Zaloguj się
Udostępnij Pokaż wyjaśnienie do tematu
Pętla while w Pythonie

W programowaniu wykorzystujemy pętle do powtarzania grupy poleceń. Powtarzanie często nazywamy iteracją.

Pętlę while stosujemy, gdy nie wiemy z góry, ile razy pętla będzie się powtarzać. Jeśli z góry znamy liczbę powtórzeń, używamy pętli for.

Podstawowe zastosowanie

Pętla while powtarza się tak długo, jak spełniony jest warunek sterujący pętli (w poniższym przykładzie chodzi o n > 5). Ciało pętli (polecenia, które mają się powtarzać) zaznaczamy wcięciem.

n = 5

while n > 0:

    print("To zostanie wypisane pięć razy.")

    n = n - 1

Pętlą tą wypisujemy potęgi liczby dwa, dopóki nie przekroczą liczby sto:

n = 1

while n < 100:

    print(n)

    n = n * 2

Zero i nieskończone powtórzenia

Warunek pętli jest sprawdzany jeszcze przed pierwszym wykonaniem ciała pętli. Jeśli nie jest spełniony, ciało pętli while nie zostanie wykonane ani razu:

n = 200

while n < 100:

    print("To się nie wypisze.")

Może się zdarzyć, że pętla while nigdy się nie zakończy. Poniższy program wypisuje jedynki w nieskończoność:

n = 1

while n < 100:

    print(n)

Taka nieskończona pętla zwykle oznacza błąd w programie. Typowym błędem jest zapomnienie o zmianie wartości zmiennej użytej w warunku pętli. Taką sytuację nazywamy „wpadnięciem w pętlę nieskończoną”.

Przykłady użycia pętli while

Potęgi liczby dwa

Wypisanie wszystkich potęg dwójki mniejszych niż 1000:

n = 1

while n < 1000:

    print(n)

    n *= 2

Sumator

Następujący program wczytuje liczby od użytkownika i stopniowo je sumuje. Obliczenia kończą się, gdy użytkownik poda liczbę 0

total = 0

value = int(input())

while value:

    total += value

    print("Current sum:", total)

    value = int(input())

print("Final sum:", total)

Fatal error: Uncaught TypeError: App\Service\PsService::getUserItemStatusByPs(): Argument #1 ($user) must be of type int, null given, called in /var/www/umiemyprogramowac.pl/webroot/src/Snippet/Exercise/ItemBasedExercise/ItemBasedExercisePlugin.php on line 66 and defined in /var/www/umiemyprogramowac.pl/webroot/src/Service/PsService.php:69 Stack trace: #0 /var/www/umiemyprogramowac.pl/webroot/src/Snippet/Exercise/ItemBasedExercise/ItemBasedExercisePlugin.php(66): App\Service\PsService->getUserItemStatusByPs() #1 [internal function]: App\Snippet\Exercise\ItemBasedExercise\ItemBasedExercisePlugin->progress() #2 /var/www/umiemyprogramowac.pl/webroot/src/Helper/ExerciseHeaderBuilder.php(20): call_user_func() #3 /var/www/umiemyprogramowac.pl/webroot/src/Template/BaseExercise/default.php(26): App\Helper\ExerciseHeaderBuilder->render() #4 /var/www/umiemyprogramowac.pl/webroot/src/Controller/BaseExercise.php(119): require('...') #5 /var/www/umiemyprogramowac.pl/webroot/exercise/ipython.php(21): App\Controller\BaseExercise->renderDefault() #6 /var/www/umiemyprogramowac.pl/webroot/index.php(113): include('...') #7 {main} thrown in /var/www/umiemyprogramowac.pl/webroot/src/Service/PsService.php on line 69