0% found this document useful (0 votes)
16 views4 pages

08 Python - Pętla While

Uploaded by

dogry20034
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views4 pages

08 Python - Pętla While

Uploaded by

dogry20034
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Źródło: PCAP: Programming Essentials in Python

Instrukcja while
Czy zgadzasz się z poniższą instrukcją?

while jest coś do zrobienia zrób to

Zauważ, że zapis mówi też, że jeśli nie ma nic do zrobienia, nic się nie wydarzy.

Ogólnie w języku Python pętla wygląda następująco:

while wyrażenie_warunkowe: instrukcja

Jeśli zauważyłeś pewne podobieństwa do instrukcji if, to masz rację. W rzeczywistości


różnica składniowa jest tylko jedna: używasz słowa while zamiast if.

Różnica semantyczna jest ważniejsza: gdy warunek jest spełniony, if wykonuje swoje
instrukcje tylko raz; while powtarza wykonanie aż warunek zostanie oceniony jako True.

Spójrz na poniższy algorytm:

while wyrażenie_warunkowe:
instrukcja_1
instrukcja_2
instrukcja_3
:
:
instrukcja_n

Teraz należy pamiętać, że:

 jeśli chcesz wykonać jeśli chcesz wykonać while, musisz (tak jak przy if) umieścić we
wcięciach wciąć wszystkie instrukcje w taki sam sposób;
 instrukcja lub zestaw instrukcji wykonywanych wewnątrz pętli while nazywa się ciałem pętli
(ang. loop body);
 jeśli warunek jest oceniony jako False (równy zeru) już w momencie pierwszego testu, ciało
pętli nie jest wykonywane ani razu (zauważ analogię braku konieczności wykonania
czynności, jeśli nie ma nic do zrobienia),
 ciało pętli powinno być zdolne do zmiany wartości warunku, ponieważ jeśli na początku
warunek jest oceniony jako True, ciało pętli może być wykonywane nieprzerwanie do
nieskończoności – zauważ, że zrobienie czegoś zwykle zmniejsza liczbę rzeczy do zrobienia).

Nieskończona pętla
Nieskończona pętla jest ciągiem instrukcji w programie, który powtarza się w
nieskończoność (pętla bez końca).

Oto przykład pętli, która nie jest w stanie zakończyć swego biegu:

while True:
print("Utknąłem w pętli.")
Ta pętla będzie wyświetlać w nieskończoność na ekranie komunikat "Utknąłem w pętli.".

Aby zakończyć działanie programu, po prostu naciśnij Ctrl+C (lub Ctrl+Break na niektórych
komputerach).

Przykład 1

Zadanie - znaleźć największą liczbę wśród dużej ilości wprowadzonych danych.

# będziemy przechowywać obecnie największą liczbę tutaj


największaLiczba = -999999999
# wprowadź pierwszą wartość
liczba = int(input("Wprowadź liczbę lub wpisz -1 aby zatrzymać: "))
# jeśli liczba nie jest równa -1, będziemy kontynuować
while liczba != -1:
# czy liczba jest większa niż największaLiczba?
if liczba > największaLiczba:
# tak, uaktualnij największaLiczba
największaLiczba = liczba
# wprowadź następną liczbę
liczba = int(input("Wprowadź liczbę lub wpisz -1 aby zatrzymać: "))
# wyświetl największaLiczba
print("Największa liczba wynosi:", największaLiczba)

Przykład 2
# Program odczytuje sekwencję liczb i liczy ile z nich
# jest liczbami parzystymi a ile nieparzystymi.
# Program kończy pracę po wpisaniu zera.
parzyste = 0
nieparzyste = 0
# wczytaj pierwszą liczbę
liczba = int(input("Wpisz liczbę lub 0, aby zatrzymać: "))
# 0 kończy wykonywanie
while liczba != 0:
# sprawdź czy liczba jest nieparzysta
if liczba % 2 == 1:
# zwiększ licznik liczb
nieparzystych nieparzyste += 1
else:
# zwiększ licznik liczb parzystych
parzyste += 1
# wczytaj kolejną liczbę
liczba = int(input("Wpisz liczbę lub 0, aby zatrzymać: "))
# wyświetl wynik
print("Liczb nieparzystych:", nieparzyste)
print("Liczb parzystych:", parzyste)

Niektóre wyrażenia można uprościć bez zmiany zachowania programu.

Spróbuj przypomnieć sobie, jak język Python interpretuje prawdziwość warunku i zauważ, że
te dwie formy są równoważne:

while liczba != 0: oraz while liczba:.


Warunek, który sprawdza, czy liczba jest nieparzysta, można zakodować w tych
równoważnych formach:

if liczba % 2 == 1: oraz if liczba % 2:.

Używanie licznika do wyjścia z pętli


Spójrz na poniższy fragment:

counter = 5
while counter != 0:
print("W pętli.", counter)
counter -= 1
print("Poza pętlą.", counter)

Ten kod służy do wyświetlania ciągu znaków "W pętli." i wartości przechowywanej w
zmiennej counter podczas danej pętli dokładnie pięć razy. Gdy warunek nie zostanie
spełniony (wartość zmiennej counter osiągnie 0), pętla jest zakończona i komunikat "Poza
pętlą." razem z wartością przechowywaną w zmiennej counter zostaną wyświetlone.

Ale jest jedna rzeczy, którą można zapisać bardziej kompaktowo – warunek pętli while loop.

Czy widzisz różnicę?

counter = 5
while counter:
print("W pętli.", counter)
counter -= 1
print("Poza pętlą.", counter)

ZAPAMIĘTAJ

Nie musisz kodować programów w sposób zawsze najkrótszy i najbardziej kompaktowy.


Czytelność może być ważniejsza. Przygotuj swój kod tak, aby mógł być wykorzystany przez
innego programistę.

Zadanie 1

Młodszy mag wybrał sekretny numer. Ukrył go w zmiennej o nazwie tajnyNumer. Chce,
żeby każdy, kto uruchomi jego program zagrał w jego grę o nazwie Zgadnij sekretny numer, i
odgadł, jaki numer został wybrany dla niego. Ci, którzy nie zgadną tego numeru, na zawsze
utkną w nieskończonej pętli! Niestety, sprytny mag nie wie, jak dokończyć swój kod...

Twoim zadaniem jest pomóc magowi napisać kod w edytorze w taki sposób, aby po
uruchomieniu:

 program poprosił użytkownika o wprowadzenie liczby całkowitej;


 sprawdził czy liczba wprowadzona przez użytkownika jest taka sama jak liczba wybrana przez
maga. Jeśli numer wybrany przez użytkownika jest inny niż tajny numer maga, użytkownik
powinien zobaczyć wiadomość "Nie, to nie jest ta liczba, którą wybrałem
dla ciebie. Spróbuj ponownie!" i zostać poproszony o ponowne wprowadzenie
numeru. Jeśli liczba wprowadzona przez użytkownika odpowiada numerowi wybranemu
przez maga, numer powinien zostać wypisany na ekranie, a program powinien wypisać
następujące słowa: "Dobra robota! To numer, który wybrałem dla ciebie!
Jesteś teraz wolny."

Mag liczy na ciebie! Nie zawiedź go.

DODATKOWE INFORMACJE

Przy okazji, spójrz na funkcję print(). Sposób, w jaki zastosowaliśmy ją w kodzie to tzw.
wyświetlanie wieloliniowe. Możesz użyć potrójnego cudzysłowu do wyświetlania ciągów
znaków w wielu liniach (aby tekst był łatwiejszy do odczytania) lub nawet stworzyć swój
własny tekstowy obrazek. Poksperymentuj z tym.

tajnyNumer = 777

print(
"""
+================================+
| Witaj w mojej grze, mugolu! |
| Wprowadź liczbę całkowitą |
| i zgadnij, jaki numer |
| wybrałem dla ciebie. |
| Jaki jest więc sekretny numer? |
+================================+
""")

# Napisz kod, który prosi użytkownika o wprowadzenie liczby


całkowitej.
# Napisz tutaj swoją pętlę while i resztę kodu.

You might also like