RL498HMU83TG7
Wąż pije kawę w kubku z napisem Witaj świecie

PYI_PY_W13_M05 Instrukcje iteracyjne i ich zapisywanie w języku programowania

Obraz wygenerowany przez sztuczną inteligencję Canva.ai
Źródło: domena publiczna.

Pętle należą do grupy instrukcji sterujących działaniem programu. Pozwalają one na cykliczne wykonanie instrukcji. Poznaliśmy już pętlę for. Czas zapoznać się z działaniem pętli while.

Polecenie 1

Zapoznaj się z filmem przedstawiającym grę w zgadywanie, czy ustawioną wartością jest orzeł czy reszka. Czy potrafisz wskazać inne gry, w którym można wykorzystać pętle warunkowe?

RNQ1C4D7Q2NOQ
Lekcja poświęcona pętlom warunkowym w języku Python.

Budowa pętli while

Przyjrzyjmy się pętli while i jej składni w języku Python.

Linia 1. while TEST dwukropek. Linia 2. kratka instrukcja 1 bloku kodu. Linia 3. kratka instrukcja 2 bloku kodu. Linia 4. kratka otwórz nawias kwadratowy kropka kropka kropka zamknij nawias kwadratowy.

Wyrażenie TEST jest wyrażeniem logicznym (jego wartość to prawda lub fałsz) i może być zapisane z wykorzystaniem operatorów logicznych, relacji lub porównania:

Linia 1. while zmienna zamknij nawias ostrokątny 12 dwukropek. Linia 2. kratka instrukcja 1. Linia 3. kratka instrukcja 2.

Instrukcje wewnętrzne pętli są wykonywane, dopóki wartość wyrażenia TEST to PRAWDA (wartość logiczna True).

Ważne!

Pamiętaj, aby tak skonstruować wyrażenie TEST oraz instrukcje wewnętrzne pętli, by pętla mogła się zakończyć. Pętlę, która nigdy nie zostanie zakończona, nazywamy pętlą nieskończoną:

Linia 1. while True dwukropek. Linia 2. print otwórz nawias okrągły apostrof Witaj wykrzyknik apostrof zamknij nawias okrągły.

Powyższa pętla będzie w nieskończoność wypisywać na standardowym wyjściu słowo Witaj!

Przykład 1

Przygotujmy kod, który pozwoli stworzyć ciąg znaków. Do początkowo pustego ciągu będziemy dodawać znaki podane przez użytkownika tak długo, aż użytkownik wprowadzi znak „!” (wykrzyknik). Na końcu napis zostanie wypisany na ekranie.

Program zakończy swoje działanie, gdy użytkownik wprowadzi wyłącznie znak „!”, poniższe wprowadzone przykładowe łańcuchy tekstowe nie zatrzymają jego działania:

  • !!!

  • a!

Zapiszmy program, który wyświetli łańcuch znaków Python!

Uwaga, wykrzyknik jest ostatnim znakiem wynikowego tekstu.

Linia 1. tekst znak równości cudzysłów cudzysłów. Linia 2. litera znak równości cudzysłów cudzysłów. Linia 3. while litera wykrzyknik znak równości cudzysłów wykrzyknik cudzysłów dwukropek. Linia 4. litera znak równości input otwórz nawias okrągły cudzysłów Podaj literę otwórz nawias okrągły znak apostrof wykrzyknik apostrof zakończy zamknij nawias okrągły dwukropek cudzysłów zamknij nawias okrągły. Linia 5. tekst plus znak równości litera. Linia 6. print otwórz nawias okrągły tekst zamknij nawias okrągły. Linia 8. Podaj literę otwórz nawias okrągły znak apostrof wykrzyknik apostrof zakończy zamknij nawias okrągły dwukropek P. Linia 9. Podaj literę otwórz nawias okrągły znak apostrof wykrzyknik apostrof zakończy zamknij nawias okrągły dwukropek y. Linia 10. Podaj literę otwórz nawias okrągły znak apostrof wykrzyknik apostrof zakończy zamknij nawias okrągły dwukropek t. Linia 11. Podaj literę otwórz nawias okrągły znak apostrof wykrzyknik apostrof zakończy zamknij nawias okrągły dwukropek h. Linia 12. Podaj literę otwórz nawias okrągły znak apostrof wykrzyknik apostrof zakończy zamknij nawias okrągły dwukropek o. Linia 13. Podaj literę otwórz nawias okrągły znak apostrof wykrzyknik apostrof zakończy zamknij nawias okrągły dwukropek n. Linia 14. Podaj literę otwórz nawias okrągły znak apostrof wykrzyknik apostrof zakończy zamknij nawias okrągły dwukropek wykrzyknik. Linia 15. Python wykrzyknik.

Żeby program zakończył swoje działanie, użytkownik musi wprowadzić znak „!”.

W niektórych przypadkach język Python pozwala na pominięcie zapisu testu logicznego.

W tym wypadku pętla będzie się wykonywać do czasu, dopóki zmienna, której wartość badamy w warunku pętli, jest różna od None, False, bądź 0. Musimy pamiętać o modyfikacji zmiennej lub przerwaniu pętli poleceniem break. O sposobach przerywania pętli, dowiesz się w następnym materiale.

Przykład 2

Pętla while, która będzie wykonywać się, dopóki zmienna całkowitoliczbowa zmienna jest większa od 0.

Linia 1. zmienna znak równości 9. Linia 2. while zmienna dwukropek. Linia 3. print otwórz nawias okrągły cudzysłów Zmienna znak równości cudzysłów przecinek zmienna zamknij nawias okrągły. Linia 4. zmienna minus znak równości 1. Linia 6. kratka efekt. Linia 7. kratka Zmienna znak równości 9. Linia 8. kratka Zmienna znak równości 8. Linia 9. kratka Zmienna znak równości 7. Linia 10. kratka Zmienna znak równości 6. Linia 11. kratka Zmienna znak równości 5. Linia 12. kratka Zmienna znak równości 4. Linia 13. kratka Zmienna znak równości 3. Linia 14. kratka Zmienna znak równości 2. Linia 15. kratka Zmienna znak równości 1.

Są przypadki, w których zaprezentowana pętla będzie nieskończona. Stanie się tak, kiedy początkowa wartość zmiennej zmienna będzie liczbą ujemną.

Przykład 3

Pętla while, która będzie wykonywać się, dopóki zmienna logiczna jest różna od False.

Linia 1. warunek znak równości True. Linia 2. liczba znak równości 10. Linia 3. while warunek dwukropek. Linia 4. print otwórz nawias okrągły liczba zamknij nawias okrągły. Linia 5. if liczba otwórz nawias ostrokątny 5 dwukropek. Linia 6. warunek znak równości False. Linia 7. liczba znak równości liczba minus 1. Linia 8. kratka efekt. Linia 9. kratka 10. Linia 10. kratka 9. Linia 11. kratka 8. Linia 12. kratka 7. Linia 13. kratka 6. Linia 14. kratka 5. Linia 15. kratka 4.
Przykład 4

Pętla while, która będzie wykonywać się, dopóki zmienna ma ustawioną wartość (jest różna od None).

Linia 1. napis znak równości cudzysłów Ala ma kota cudzysłów. Linia 2. while napis dwukropek. Linia 3. print otwórz nawias okrągły napis zamknij nawias okrągły. Linia 4. napis znak równości None. Linia 6. kratka efekt. Linia 7. kratka Ala ma kota.
Przykład 5

Nieskończona pętla while, która zostanie przerwana instrukcją break.

Linia 1. zmienna znak równości 5. Linia 2. while True dwukropek. Linia 3. print otwórz nawias okrągły cudzysłów Zmienna znak równości cudzysłów przecinek zmienna zamknij nawias okrągły. Linia 4. zmienna minus znak równości 1. Linia 5. if zmienna otwórz nawias ostrokątny minus 3 dwukropek. Linia 6. break. Linia 8. kratka efekt. Linia 9. kratka Zmienna znak równości 5. Linia 10. kratka Zmienna znak równości 4. Linia 11. kratka Zmienna znak równości 3. Linia 12. kratka Zmienna znak równości 2. Linia 13. kratka Zmienna znak równości 1. Linia 14. kratka Zmienna znak równości 0. Linia 15. kratka Zmienna znak równości minus 1. Linia 16. kratka Zmienna znak równości minus 2. Linia 17. kratka Zmienna znak równości minus 3.
Ćwiczenie 1

Napisz program, który w pętli będzie wykonywał następujące instrukcje tak długo, jak długo użytkownik na pytanie o chęć wykonania będzie odpowiadał „T”:

  • zada pytanie o to, jaki łańcuch znaków ma wyświetlić,

  • zada pytanie o to, ile razy go wyświetlić,

  • wyświetli określoną liczbę razy łańcuch znaków.

Specyfikacja problemu:

Dane:

  • odpowiedz – pobrana od użytkownika decyzja o kontynuowaniu działania programu; łańcuch znaków

  • n – liczba naturalna; liczba wyświetleń danego znaku

  • znak – łańcuch znaków; znak do wyświetlenia

Wynik:

Program wyświetla n-krotnie na standardowym wyjściu pobrany łańcuch znaków.

Przykładowe działanie programu:

Linia 1. Podaj znak do wyświetlenia dwukropek a. Linia 2. Ile znaków wyświetlić dwukropek 5. Linia 3. Wyświetlam dwukropek aaaaa. Linia 4. Czy wykonujemy ponownie otwórz nawias okrągły T prawy ukośnik N zamknij nawias okrągły zamknij nawias ostrokątny T. Linia 5. Podaj znak do wyświetlenia dwukropek 4. Linia 6. Ile znaków wyświetlić dwukropek 4. Linia 7. Wyświetlam dwukropek 4444. Linia 8. Czy wykonujemy ponownie otwórz nawias okrągły T prawy ukośnik N zamknij nawias okrągły zamknij nawias ostrokątny.