10

Pętla while – powtarzaj, dopóki warunek jest prawdziwy

Materiały tej lekcji są na razie tylko do czytania na stronie. Kod przepisz albo skopiuj do swojego edytora.

Czego się nauczysz

Pętla for sprawdza się, gdy wiesz z góry, ile razy coś ma się powtórzyć. Ale czasem tego nie wiesz: pytasz użytkownika o liczbę, dopóki nie poda poprawnej, albo powtarzasz menu, dopóki nie wybierze wyjścia. Do tego służy while.

Po tej lekcji:

Kiedy for nie wystarcza

# for: znam liczbę obrotów
for i in range(10):
    print(i)

# while: powtarzam, dopóki warunek jest prawdziwy
licznik = 0
while licznik < 10:
    print(licznik)
    licznik += 1

Typowe zastosowania while: pytanie użytkownika do skutku, liczenie, ile razy trzeba podzielić liczbę przez dwa, żeby dojść do jedynki, powtarzanie menu programu.

Budowa pętli while – trzy rzeczy do zadbania

  1. Przed pętlą – utwórz zmienną i nadaj jej wartość początkową.
  2. W warunku – sprawdź tę zmienną. Dopóki warunek jest prawdziwy, pętla się kręci.
  3. W środku pętli – zmień tę zmienną, żeby warunek kiedyś przestał być prawdziwy.
licznik = 0
while licznik < 3:
    print("Obrot", licznik)
    licznik += 1
print("Koniec")

Pętla nieskończona

Pominięcie trzeciego punktu daje pętlę nieskończoną. Program się nie wywali – będzie działał w kółko, aż go ręcznie zatrzymasz.

Jeśli program się zawiesił, najpierw sprawdź, czy zmieniasz zmienną w środku pętli.

break – wyjście z pętli w środku

Instrukcja break kończy pętlę od razu, niezależnie od warunku. Reszta bieżącego obrotu też się nie wykona. Działa w while i w for, a kończy tylko tę pętlę, w której stoi.

for i in range(100):
    print(i)
    if i == 4:
        break
# wypisze 0 1 2 3 4

Wzorzec while True

Warunek True jest zawsze prawdziwy, więc taka pętla sama z siebie nigdy się nie skończy. Wyjściem jest wyłącznie break w środku.

licznik = 0
while True:
    licznik += 1
    if licznik == 3:
        break
print(licznik)   # 3

Wygląda dziwnie, ale to najważniejszy wzorzec tego przedmiotu. Za kilka lekcji zbudujesz na nim program pytający użytkownika do skutku.

Spróbuj sam

W kodzie z lekcji jest zakomentowana pętla nieskończona:

# while True:
#     print("to sie nigdy nie skonczy...")

Usuń oba znaki #, uruchom program i zatrzymaj go przyciskiem Stop (strona po chwili przerwie go też sama). Tak wygląda pętla nieskończona – lepiej zobaczyć ją tutaj niż pierwszy raz na egzaminie.

Zadania z lekcji:

  1. Za pomocą pętli while wypisz liczby od 1 do 10.
  2. Utwórz zmienną o wartości 100. Dopóki jest większa od 1, dziel ją przez 2 dzieleniem całkowitym i wypisuj wynik. Policz, ile razy udało się podzielić.
  3. Napisz pętlę while True, która zlicza obroty i przerywa się instrukcją break po dziesiątym obrocie.
  4. Napisz program, który wypisuje kolejne liczby i przerywa się w chwili, gdy suma wypisanych liczb przekroczy 50.

Sprawdź się

Na następnej lekcji: listy. Zamiast trzymać dwadzieścia ocen w dwudziestu zmiennych, będziesz je trzymać w jednej – i przechodzić po nich pętlą.

Notatki

PDF
Zadania utrwalające Karta pracy do tej lekcji: zadania sprawdzające i domowe do samodzielnego zrobienia w swoim edytorze · 6 stron.
Zadania utrwalające – Pętla while – powtarzaj, dopóki warunek jest prawdziwy
Strona 1 z 6 Strona 2 z 6 Strona 3 z 6 Strona 4 z 6 Strona 5 z 6 Strona 6 z 6

Prezentacja

Slajd 1 z 6
1 / 6

Kod

Otwórz kod, zmieniaj go i uruchamiaj na stronie – np. usuń # z linii oznaczonej jako błąd i zobacz, co się stanie. „Przywróć” wraca do wersji z lekcji.

PY
demo_10_petla-while.py Kod z lekcji – otwórz, zmieniaj i uruchamiaj; wynik zobaczysz obok kodu.
demo_10_petla-while.py
Wynik programu
Kliknij „Uruchom”, żeby zobaczyć tutaj wynik programu.