Menu
Coddy logo textTech

Czym jest iteracja?

W programowaniu iteracja to powtarzanie zestawu instrukcji, zwykle za pomocą pętli, aż zostanie spełniony warunek albo przetworzony każdy element kolekcji. Każde pojedyncze przejście przez powtarzane instrukcje też nazywa się iteracją.

Autor: Kevin Spektor, Współzałożyciel i CTO

Aktualizacja: 24 września 2026

Program, który wysyła e-mail z przypomnieniem do 10 000 użytkowników, nie zawiera 10 000 kopii kodu wysyłającego. Zawiera ten kod raz, wewnątrz pętli, a pętla wykonuje go raz dla każdego użytkownika. Każde wykonanie to jedna iteracja, a cała pętla to sposób, w jaki program iteruje po użytkownikach.

Jak działa iteracja krok po kroku

Każda pętla przechodzi przez ten sam cykl:

  1. Sprawdź. Przetestuj warunek pętli, który jest wartością typu boolean: czy jest kolejny element albo czy licznik jest nadal poniżej limitu?
  2. Wykonaj. Jeśli odpowiedź to prawda, wykonaj ciało pętli raz.
  3. Zaktualizuj. Przejdź do następnego elementu albo zmień licznik.
  4. Powtórz. Wróć do kroku 1. Gdy sprawdzenie da fałsz, program kontynuuje od kodu za pętlą.

Tutaj ciało wykonuje się pięć razy, a każda iteracja dodaje kolejną liczbę do bieżącej sumy:

iteration 1 total is now 1
iteration 2 total is now 3
iteration 3 total is now 6
iteration 4 total is now 10
iteration 5 total is now 15
Done: 15

Zmienna total istnieje poza pętlą, więc zachowuje wartość z jednej iteracji na następną. Ten wzorzec, czyli zmienna ustawiona przed pętlą i aktualizowana w jej wnętrzu, nazywa się akumulatorem i pojawia się w niemal każdej pętli, która coś oblicza.

Pętle liczące i pętle z warunkiem

Są dwa rodzaje iteracji. Iteracja określona wykonuje się znaną liczbę razy: raz na każdy element listy albo raz na każdą liczbę od 1 do 5. Pętla for w Pythonie jest stworzona właśnie do tego, często razem z range().

Iteracja nieokreślona powtarza się, dopóki coś się nie wydarzy, a liczba przejść nie jest znana z góry. Do tego pasuje pętla while:

8 years, balance 214.36

Pieniądze, które rosną o 10% rocznie, podwajają się po 8 latach. Program ustalił to przez iterowanie, a nie przez rozwiązanie równania. Przewodniki po pętlach for i pętlach while omawiają oba rodzaje w Pythonie.

Iterowanie po kolekcji

Większość pętli przechodzi przez kolekcję: elementy tablicy, znaki napisu, linie pliku. Pętla for w Pythonie podaje ci każdy element bezpośrednio, a enumerate() dodaje jego pozycję:

0 apple
1 banana
2 cherry

Za kulisami for prosi kolekcję o iterator przez iter(), a potem wywołuje na nim next() raz na iterację. Te same wywołania możesz wykonać sam:

red
green
blue
no more items

Bez wartości domyślnej czwarte next() zgłasza StopIteration. Ten wyjątek to sygnał, po którym pętla for wie, że kolekcja się skończyła.

Inne języki zapisują tę samą ideę inaczej. C liczy za pomocą indeksu, a Java i JavaScript mają też pętlę, która podaje każdy element:

for (int i = 0; i < 3; i++) {
    printf("%s\n", colors[i]);
}
for (String color : colors) {
    System.out.println(color);
}
for (const color of colors) {
    console.log(color);
}

Iteracja a rekurencja

Rekurencja to drugi sposób powtarzania pracy: funkcja wywołuje samą siebie na mniejszej wersji problemu, aż dojdzie do przypadku, na który może odpowiedzieć bezpośrednio. Wszystko, co zapiszesz jednym sposobem, można zapisać drugim, ale zachowują się inaczej:

IteracjaRekurencja
Jak powtarzaPętla wraca na swój początekFunkcja wywołuje samą siebie
Kiedy się kończyWarunek pętli staje się fałszywyZostaje osiągnięty przypadek bazowy
PamięćTyle samo dla dowolnej liczby przejśćJedna ramka stosu na każde otwarte wywołanie
Typowa awariaPętla nieskończonaPrzepełnienie stosu (RecursionError w Pythonie)
Dobrze pasuje doList, liczników, powtarzania do spełnienia warunkuDrzew, zagnieżdżonych danych, dziel i zwyciężaj

Wiersz o pamięci ma znaczenie w praktyce. Python domyślnie pozwala na około 1000 zagnieżdżonych wywołań, więc rekurencyjna suma 5000 liczb się nie udaje tam, gdzie pętla nie ma żadnego problemu:

5050 5050
12502500
sum_recursive(5000) failed: RecursionError

Wizualizacja rekurencji pokazuje krok po kroku, jak stos wywołań rośnie i maleje.

Częste błędy

Pętla nieskończona. Pętla while, której warunek nigdy nie staje się fałszywy, działa, dopóki nie zatrzymasz programu. Zwykłą przyczyną jest zapomniany krok aktualizacji, na przykład pominięcie count = count - 1.

Pomyłka o jeden. range(1, 5) daje 1, 2, 3 i 4, a nie 5, bo wartość końcowa jest wykluczona. Pętla, która wykona się raz za dużo albo raz za mało, nadal działa bez błędu i daje złą odpowiedź, a to jest błąd logiczny.

Zmienianie listy podczas przechodzenia po niej. Usuwanie elementów z listy, po której iterujesz, sprawia, że pętla pomija elementy:

[1, 2, 3]

Jedna dwójka przetrwała, bo usunięcie pierwszej 2 przesunęło drugą na pozycję, którą pętla już minęła. Zamiast tego zbuduj nową listę: numbers = [n for n in numbers if n != 2].

Co dalej

Pętle przechodzą przez kolekcje, więc naturalną stroną towarzyszącą jest czym jest tablica, a strona co to jest boolean wyjaśnia sprawdzenia prawda albo fałsz, które decydują, kiedy pętla się kończy. Gdy pętla daje zły wynik bez komunikatu o błędzie, przeczytaj, czym jest błąd logiczny. Żeby poćwiczyć pisanie pętli, zacznij kurs Python albo wypróbuj powyższe przykłady w edytorze online Pythona.

Najczęściej zadawane pytania

Jaki jest przykład iteracji?
Pętla for, która wyświetla każde imię z listy 100 użytkowników, wykonuje 100 iteracji, po jednej na imię. Pętla while, która pyta o hasło, dopóki nie zostanie wpisane poprawne, to też iteracja, mimo że liczba przejść nie jest znana z góry.
Co jest lepsze, rekurencja czy iteracja?
Żadna nie jest lepsza w ogólności. Iteracja zużywa stałą ilość pamięci i zwykle jest szybsza przy prostym powtarzaniu, takim jak sumowanie listy albo liczenie. Rekurencja daje krótszy i czytelniejszy kod dla problemów rekurencyjnych z natury, takich jak przechodzenie drzewa folderów, ale każde wywołanie zużywa pamięć stosu, a bardzo głęboka rekurencja kończy się błędem w językach takich jak Python.
Czy iteracja to to samo co pętla?
Prawie. Pętla to konstrukcja języka, taka jak for albo while, a iteracja to powtarzanie, które ona wykonuje. Pojedyncze przejście przez ciało pętli też nazywa się iteracją, więc pętla, która wykonuje się 5 razy, wykonuje 5 iteracji.
Czym różni się sprint od iteracji?
W zarządzaniu projektami programistycznymi iteracja to stały okres, zwykle od jednego do czterech tygodni, w którym zespół planuje, buduje i przegląda kawałek działającego oprogramowania. Scrum nazywa ten okres sprintem, więc w praktyce oba słowa znaczą to samo. To inne znaczenie niż iteracja w kodzie.
Co znaczy iterowalny?
Obiekt iterowalny (iterable) to każdy obiekt, po którym można przejść pętlą for, na przykład lista, napis, słownik, plik albo range. W Pythonie obiekt jest iterowalny, jeśli iter() potrafi utworzyć z niego iterator. Liczby całkowite nie są iterowalne, dlatego for x in 5: zgłasza TypeError.
Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ