Podstawy programowania w języku Python I

Pętle w Pythonie

Podsumowanie tematu 4

Pętle

Pętle w Pythonie

Pętla powtarza blok kodu. Python ma dwie pętle:

  • for: gdy wiemy, PO CZYM chodzimy (liczby, napis, lista)
  • while: gdy powtarzamy, DOPÓKI warunek jest prawdziwy
Pętle · 1

for i range: powtórz n razy

range(n) daje liczby 0, 1, ..., n-1 (bez n!). Wcięcie wyznacza ciało pętli, tak jak w if.

Kod
Wynik programu
▶ Całość albo ⏭ KrokPowtórzenie nr 0
Powtórzenie nr 1
Powtórzenie nr 2
Powtórzenie nr 3
Powtórzenie nr 4
Pętle · 2

Trzy postacie range

range(stop)               -> od 0 do stop-1
range(start, stop)        -> od start do stop-1
range(start, stop, krok)  -> co krok
Kod
Wynik programu
▶ Całość albo ⏭ Krok[0, 1, 2, 3, 4]
[1, 2, 3, 4, 5]
[0, 5, 10, 15]
[10, 8, 6, 4, 2]
Pętle · 3

for po napisie i po liście

for przechodzi po kolejnych elementach czegokolwiek, co da się przejść.

Kod
Wynik programu
▶ Całość albo ⏭ KrokP
y
t
h
o
n
Lubię jabłko
Lubię gruszka
Lubię śliwka
Pętle · 4

Akumulator: sumowanie w pętli

Zmienną wynikową tworzymy PRZED pętlą, w pętli ją aktualizujemy.

Kod
Wynik programu
▶ Całość albo ⏭ KrokSuma 1..n = 15
n! = 120
Pętle · 5

Pętla + if: liczenie i filtrowanie

Kod
Wynik programu
▶ Całość albo ⏭ KrokLiczb parzystych w 1..20: 10
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
Pętle · 6

while: powtarzaj, dopóki warunek jest prawdziwy

Warunek sprawdzany jest PRZED każdym obrotem. Coś w pętli musi go w końcu zmienić, inaczej pętla nigdy się nie skończy.

Kod
Wynik programu
▶ Całość albo ⏭ KrokOdliczanie: 3
Odliczanie: 2
Odliczanie: 1
Start!
Pętle · 7

while, gdy nie wiemy, ile będzie obrotów

Ile razy trzeba podwoić 1, żeby przekroczyć 1000?

Kod
Wynik programu
▶ Całość albo ⏭ Krok10 kroków, wartość: 1024
Suma cyfr: 10
Pętle · 8

break: przerwij pętlę natychmiast

Szukamy pierwszej liczby podzielnej przez 7 i przez 4.

Kod
Wynik programu
▶ Całość albo ⏭ KrokZnaleziono: 28
Pętle · 9

continue: pomiń resztę tego obrotu i idź dalej

Kod
Wynik programu
▶ Całość albo ⏭ Krok1 2 4 5 7 8 10 
Pętle · 10

Pętla zagnieżdżona: tabliczka mnożenia

Wewnętrzna pętla wykonuje się w CAŁOŚCI dla każdego obrotu zewnętrznej.

Kod
Wynik programu
▶ Całość albo ⏭ Krok   1   2   3   4   5
   2   4   6   8  10
   3   6   9  12  15
   4   8  12  16  20
   5  10  15  20  25
Pętle · 11

enumerate: numer i element jednocześnie

Kod
Wynik programu
▶ Całość albo ⏭ Krok1 jabłko
2 gruszka
3 śliwka
Pętle · 12

Wczytanie n liczb: pętla i wersja skrócona

Typowy format zadań: najpierw ile liczb, potem każda w osobnej linii. _ to zwyczajowa nazwa zmiennej, której nie używamy: potrzebujemy tylko powtórzyć input() n razy, numer obrotu jest zbędny.

Kod
Dane wejściowe
Wynik programu
▶ Całość albo ⏭ Krok[10, 20, 5]
Pętle · 13

To samo w jednej linii: list comprehension

[WYRAŻENIE for ZMIENNA in KOLEKCJA] buduje listę z wyników wyrażenia. Działa dokładnie jak pętla z komórki 12.

Kod
Dane wejściowe
Wynik programu
▶ Całość albo ⏭ Krok[10, 20, 5]
suma: 35  max: 20  min: 5
Pętle · 14

Typowe błędy

Kod
Wynik programu
▶ Całość albo ⏭ KrokZła suma 1..3: 3
Checkpoint

Co wypisze ten kod?

Ile razy wykona się każda pętla i co zostanie wypisane? Najpierw przewidź, potem ▶ Uruchom.

Kod
Wynik programu
Najpierw przewidź wynik, potem ▶ Całość albo ⏭ Krok.A:
0
1
2
3
4
B:
2
4
6
C:
D:
6
Podsumowanie

for czy while?

  • Znana liczba powtórzeń albo przechodzenie po elementach -> for
  • Powtarzanie aż do spełnienia warunku -> while
  • Wyjście w środku pętli -> break, pominięcie obrotu -> continue

Notatki prowadzącego · slajd

· D rysuj · C wyczyść · N notatki · S skrypt · F pełny ekran