LEKCJA 3. Powtarzanie czynności – pętle

1. Dlaczego potrzebujemy pętli?

Temat 1/ Klasa 3/ Lekcja 3

Wyobraź sobie, że program ma pięć razy wyświetlić napis:

Python

Można napisać:

print("Python")
print("Python")
print("Python")
print("Python")
print("Python")

Ale co, jeśli napis trzeba wyświetlić 100 razy?

Nie będziemy pisać stu instrukcji print().

Użyjemy pętli.

Pętla umożliwia wielokrotne wykonanie tej samej instrukcji lub grupy instrukcji.


2. Pętla for

Przykład:

for i in range(5):
print("Python")

Program wyświetli napis pięć razy.

range(5) oznacza tutaj pięć kolejnych wartości:

0, 1, 2, 3, 4

Zmienna i przyjmuje kolejno każdą z nich.


3. Wyświetlanie kolejnych liczb

for i in range(5):
print(i)

Wynik:

0
1
2
3
4

Jeżeli chcemy liczby od 1 do 5:

for i in range(1, 6):
print(i)

Wynik:

1
2
3
4
5

W range(1, 6) liczba 1 jest początkiem, a 6 jest granicą, której program już nie uwzględnia.


4. Pętla i obliczenia

Napiszmy program wyświetlający kwadraty liczb od 1 do 5:

for i in range(1, 6):
print(i, i * i)

Otrzymamy:

1 1
2 4
3 9
4 16
5 25

5. Sumowanie wartości

Załóżmy, że chcemy obliczyć:

1 + 2 + 3 + 4 + 5

Potrzebujemy zmiennej przechowującej aktualną sumę.

suma = 0
for i in range(1, 6):
suma = suma + i
print("Suma:", suma)

Na początku:

suma = 0

Następnie kolejno:

0 + 1
1 + 2
3 + 3
6 + 4
10 + 5

Ostatecznie otrzymujemy:

15

Instrukcja:

suma = suma + i

oznacza:

weź dotychczasową wartość zmiennej suma, dodaj i i zapisz nowy wynik ponownie w zmiennej suma.


6. Pobieranie kilku wartości

Możemy również wielokrotnie pytać użytkownika o dane.

for i in range(3):
liczba = int(input("Podaj liczbę: "))
print("Wpisałeś:", liczba)

Program trzy razy poprosi o podanie liczby.


7. Pętla while

Drugim rodzajem pętli jest while.

while oznacza:

wykonuj instrukcje tak długo, jak długo podany warunek jest prawdziwy.

Przykład:

liczba = 1
while liczba <= 5:
print(liczba)
liczba = liczba + 1

Program wyświetli liczby:

1
2
3
4
5

8. for czy while?

W prostych zadaniach możemy przyjąć:

for – gdy z góry wiemy, ile razy coś ma się powtórzyć.

while – gdy powtarzanie zależy od warunku.

Przykład:

Wyświetl napis 10 razy.

Najwygodniej użyć for.

Pobieraj liczbę, dopóki użytkownik nie poda 0.

Możemy zastosować while.


9. Uważaj na nieskończoną pętlę

Spójrz:

liczba = 1
while liczba <= 5:
print(liczba)

Wartość liczba nigdy się nie zmienia.

Warunek:

liczba <= 5

pozostaje więc cały czas prawdziwy.

Pętla będzie wykonywana bez końca.

Trzeba zmieniać wartość:

liczba = liczba + 1

Zadanie podsumowujące

Napisz program obliczający sumę liczb całkowitych od 1 do 5.

Najpierw spróbuj zrobić to samodzielnie.

Który program jest prawidłowy?

A

suma = 0
for i in range(1, 6):
suma = suma + i
print(suma)

B

suma = 0
for i in range(1, 5):
suma = suma + i
print(suma)

C

suma = 0
for i in range(1, 6):
suma = i
print(suma)

D

suma = 1
for i in range(1, 6):
suma = suma * i
print(suma)

Wskazówka

Potrzebujemy:

1 + 2 + 3 + 4 + 5

Zwróć uwagę na dwie rzeczy:

  • od jakiej wartości zaczyna się suma,
  • czy range() obejmuje liczbę 5.

Odpowiedź

Prawidłowa odpowiedź: A.

range(1, 6) daje liczby od 1 do 5, a instrukcja:

suma = suma + i

dodaje każdą kolejną liczbę do sumy.

B jest błędne, ponieważ range(1, 5) obejmuje tylko liczby 1, 2, 3 i 4.

C jest błędne, ponieważ zamiast dodawać kolejne wartości, za każdym razem zastępuje poprzednią wartość suma.

D jest błędne, ponieważ program mnoży liczby zamiast je dodawać.


Zadanie z gwiazdką ★

Napisz program, który:

  1. pyta użytkownika, ile liczb chce podać,
  2. pobiera podaną liczbę wartości,
  3. oblicza ich sumę,
  4. wyświetla wynik.

Rozwiązanie

ile = int(input("Ile liczb chcesz podać? "))
suma = 0
for i in range(ile):
liczba = float(input("Podaj liczbę: "))
suma = suma + liczba
print("Suma wynosi:", suma)

Jeżeli użytkownik poda:

3

program trzykrotnie wykona input().

Nie poznaliśmy tutaj żadnej nowej konstrukcji – wykorzystaliśmy jedynie pętlę, zmienne, input() i obliczenia.