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:
01234
Jeżeli chcemy liczby od 1 do 5:
for i in range(1, 6): print(i)
Wynik:
12345
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 12 43 94 165 25
5. Sumowanie wartości
Załóżmy, że chcemy obliczyć:
1 + 2 + 3 + 4 + 5
Potrzebujemy zmiennej przechowującej aktualną sumę.
suma = 0for i in range(1, 6): suma = suma + iprint("Suma:", suma)
Na początku:
suma = 0
Następnie kolejno:
0 + 11 + 23 + 36 + 410 + 5
Ostatecznie otrzymujemy:
15
Instrukcja:
suma = suma + i
oznacza:
weź dotychczasową wartość zmiennej
suma, dodajii zapisz nowy wynik ponownie w zmiennejsuma.
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 = 1while liczba <= 5: print(liczba) liczba = liczba + 1
Program wyświetli liczby:
12345
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 = 1while 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 = 0for i in range(1, 6): suma = suma + iprint(suma)
B
suma = 0for i in range(1, 5): suma = suma + iprint(suma)
C
suma = 0for i in range(1, 6): suma = iprint(suma)
D
suma = 1for i in range(1, 6): suma = suma * iprint(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:
- pyta użytkownika, ile liczb chce podać,
- pobiera podaną liczbę wartości,
- oblicza ich sumę,
- wyświetla wynik.
Rozwiązanie
ile = int(input("Ile liczb chcesz podać? "))suma = 0for i in range(ile): liczba = float(input("Podaj liczbę: ")) suma = suma + liczbaprint("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.
