Kurs Python · Moduł 1: Podstawy Pythona

Pętle - Cykle natury

3 min czytania ·
W tej lekcji5

Witaj! Natura uwielbia powtórzenia: słońce wschodzi każdego ranka, fale uderzają o brzeg, stado migruje co roku. W programowaniu też często musimy coś powtórzyć - sprawdzić każde zwierzę na liście, policzyć dni ekspedycji, generować raport co godzinę. Zamiast przepisywać ten sam kod wiele razy, używamy pętli.

Pętla for - Przejdź przez każdy element

Pętla for przechodzi po kolei przez elementy zbioru - jak badacz, który ogląda każde zwierzę w stadzie jedno po drugim.

animals = ["Lew", "Słoń", "Żyrafa", "Pyton"]

for animal in animals:
    print(f"Zaobserwowano: {animal}")

Python pobiera pierwszy element listy, przypisuje go do zmiennej animal i wykonuje wcięty blok. Potem bierze drugi element, trzeci - aż do końca listy. Tak jak przy if, po nagłówku jest dwukropek i wcięty blok.

range() - Powtórz określoną liczbę razy

Gdy chcemy coś zrobić konkretną liczbę razy, używamy range(). Funkcja ta generuje ciąg liczb.

# Wypisz dni ekspedycji od 1 do 5
for day in range(1, 6):
    print(f"Dzień {day} ekspedycji")

# range(5) generuje 0, 1, 2, 3, 4
for i in range(5):
    print(f"Krok {i}")

Pamiętaj: range(1, 6) daje liczby od 1 do 5 - górna granica (6) nie jest wliczana. A range(5) zaczyna od 0 i daje 0, 1, 2, 3, 4.

Pętla while - Powtarzaj, dopóki warunek jest spełniony

Pętla while ("dopóki") powtarza kod tak długo, jak długo warunek jest True. Używamy jej, gdy nie wiemy z góry, ile powtórzeń będzie potrzebnych.

water_supply = 5

while water_supply > 0:
    print(f"Pozostało wody: {water_supply} litrów")
    water_supply = water_supply - 1   # zużywamy litr

print("Koniec zapasów wody!")

Python sprawdza warunek przed każdym powtórzeniem. Dopóki water_supply > 0 jest True, wykonuje blok. Bardzo ważne: wewnątrz pętli musimy zmieniać warunek (tu: zmniejszać zapas wody), inaczej pętla nigdy się nie skończy - to tzw. nieskończona pętla.

break i continue - Sterowanie pętlą

Czasem chcemy przerwać pętlę wcześniej (break) albo pominąć jedno powtórzenie i przejść do następnego (continue).

animals = ["Gazela", "Lew", "Antylopa", "Zebra"]

for animal in animals:
    if animal == "Lew":
        print("Drapieżnik! Przerywam obserwację.")
        break   # wychodzimy z pętli
    print(f"Bezpieczne: {animal}")
numbers = [1, 2, 3, 4, 5, 6]

for number in numbers:
    if number % 2 != 0:
        continue   # pomijamy liczby nieparzyste
    print(f"Liczba parzysta: {number}")

Praktyka

Napisz pętlę, która zlicza wszystkie zwierzęta zaobserwowane podczas ekspedycji. Uruchom pętle w edytorze i dopisz do listy kolejne zwierzę:

Kod do tej lekcji: main.py
# Pętle - zliczanie zwierząt podczas ekspedycji

animals = ["Lew", "Słoń", "Żyrafa", "Zebra", "Pyton"]

# TODO: użyj pętli for, aby wyświetlić każde zwierzę
for animal in animals:
    print(f"Zaobserwowano: {animal}")

# TODO: policz, ile jest zwierząt (zlicz w pętli)
count = 0
for animal in animals:
    count = count + 1

print(f"Łącznie zaobserwowano {count} zwierząt")

# TODO: użyj range(), aby wypisać 3 dni ekspedycji
for day in range(1, 4):
    print(f"Dzień {day} ekspedycji")

Podsumowanie

W tej lekcji opanowałeś/aś powtarzanie kodu:

  • for - przechodzi przez elementy zbioru (np. listy)
  • range() - generuje ciąg liczb do powtórzeń
  • while - powtarza, dopóki warunek jest True
  • break - przerywa pętlę, continue - pomija jedno powtórzenie
  • Niebezpieczeństwo nieskończonej pętli

W ostatniej lekcji tego bloku Darwin pokaże Ci funkcje - jak opakować kod w narzędzie wielokrotnego użytku!

Hasła z dokumentacji w tej lekcji

Widzisz błąd w tej lekcji?

Sprawdź się

Odpowiedz na pytania z tej lekcji. Wybierz odpowiedź, a od razu zobaczysz, czy jest poprawna.

  1. 1. Po czym przechodzi pętla for w przykładzie for animal in animals?

  2. 2. Jakie liczby wygeneruje range(1, 6)?

  3. 3. Co robi instrukcja break w pętli?

Zadania praktyczne w grze

  • Układanie w pionie

    Uporządkuj pętlę while, która wypisze kolejno 5, 4, 3, 2, 1:

Przydatne artykuły