Pętla while w Pythonie
Programowanie w Pythonie
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ę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 - 1Pętlą tą wypisujemy potęgi liczby dwa, dopóki nie przekroczą liczby sto:
n = 1
while n < 100:
print(n)
n = n * 2Zero 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 *= 2Sumator
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