Rozdział 10 · Trochę automatyzacji!
if warunki w for cyklach
Pętle i warunki świetnie ze sobą współpracują — a pętle można zagnieżdżać w sobie.
if warunki w for cyklach
if z rozdziału 9 działa perfekcyjnie w pętli — na każdym z nich
Krok możesz podjąć własną decyzję:
if_v_cikle.py
for number in range(1, 11):
if number % 2 == 0:
print(number, „— nawet”)
Zagnieżdżone pętle for
pętlę można umieścić w innej pętli – wtedy wewnętrzna pętla jest w pełni wykonana na każdym kroku zewnętrznej. Wyobraź sobie siatkę: zewnętrzna pętla biegnie wzdłuż łańcuch znakówm, wewnętrzna pętla biegnie wzdłuż kolumny każdego wiersza:
vlozhennye_cikly.py
for row in range(3):
for col in range(4):
print(f"({row}, {col})", end=" ")
print() # nowy łańcuch znaków po każdym wierszu
Ile razy wykona się wewnętrzna pętla?
| row | col | print(...) raz zadziałało. Nie. |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 2 |
| 0 | 2 | 3 |
| 0 | 3 | 4 |
| 1 | 0 | 5 |
| … | … | … |
| 2 | 3 | 12 |
Zagnieżdżone pętle — częsta przyczyna nieoczekiwanej powolności
Cykl zewnętrzny wykonywany jest 3 razy, cykl wewnętrzny 4 razy na każdym z nich etap zewnętrznego — całkowity
print(...) w środku się sprawdzi 3 * 4 = 12 raz. Jeśli obie pętle idą nie do 3-4, lecz do tysięcy, końcowa liczba iteracji mnoży się — i program może działać zdecydowanie dłużej, niż się wydaje na pierwszy rzut oka.Mini Projekt: Tablica mnożenia
Klasycznym problemem zagnieżdżonej pętli jest wydrukowanie tablicy mnożenia od 1 do 5:
tablica_umnozheniya.py
for a in range(1, 6):
for b in range(1, 6):
print(a * b, end="\t")
print()
Wystarczy jeden lub dwa przykłady
Nie będziemy konkretnie mnożyć przykładów wzorców na zagnieżdżonych cyklach — tablica mnożenia (i powyższa siatka) dają wystarczającą intuicję, by samodzielnie czytać i zapisywać podobne konstrukcje.
Pętla + łańcuch znaków + warunek
Zagnieżdżanie działa także tam, gdzie wewnętrzna „pętla”
cikl_stroka_uslovie.py
slova = ["python", „kod”, „cykl”]
for slovo in slova:
bukvy_o = 0
for letter in slovo:
if letter == „o”:
bukvy_o += 1
print(slovo, "—", bukvy_o)
Praktyka: warunki i zagnieżdżone pętle
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Praktyka: mini-projekt „Tabliczka mnożenia”
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Praktyka: Ile iteracji jest w zagnieżdżonej pętli?
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji