Rozdział 10 · Trochę automatyzacji!

Cykle magiczne! Cykle for

Wreszcie prawdziwa automatyzacja: zamiast powtarzać kod ręcznie, prosimy Python, by powtórzył go sam.

Zanim Python: powtarzalność wokół nas

Powtarzamy czynności cały czas, nawet nie myśląc: mycie zębów tymi samymi ruchami, Maszerujemy tymi samymi krokami, śpiewamy zwrotkę za zwrotką tej samej melodii. Powtarzalność jest odrębnym, niezależnym sposobem organizowania działaniana równi z "zrób jedną rzecz po drugiej" oraz "wybierz jedną z dwóch ścieżek".

Trzy struktury algorytmu: przypominamy sobie

W rozdziale 9 omówiliśmy pierwsze dwie z trzech podstawowych struktur, z których składa się każdy algorytm. Trzecia — powtarzalność jest tematem tego rozdziału.

Trzy struktury, z których budowany jest każdy algorytm
1 · Kolejność
Kroki następują jeden po drugim
„Najpierw… potem… potem…”
Rozdział 9
2 · Rozgałęzienie
Wybór jednej ze ścieżek według warunku
if / elif / else
Rozdział 9
3 · Recenzja
Ten sam blok w kółko
for / while
Ten rozdział

Co jest nie tak z tym kodem?

Oto kwadrat z rozdziału 6 — już znany kod: cztery identyczne bloki „krok do przodu, obrót”

kvadrat_bez_cikla.py
artist.forward(100)
artist.right(90)
artist.forward(100)
artist.right(90)
artist.forward(100)
artist.right(90)
artist.forward(100)
artist.right(90)

Teraz wyobraź sobie, że nie potrzebujesz kwadratu, ale Dwudziestu. Skopiuj te dwie linie jeszcze 16 razy ręcznie — długo i łatwo popełnić błąd. Właśnie do takich powtarzających się bloków istnieją pętle: Sposób na powiedzenie Python „Powtarzaj to N raz”

Terminy pętli

Zanim napiszemy pierwszy cykl, ustalmy słowa, jakimi go opiszemy — Potem spotkają się w całym rozdziale:

TerminCo to jest
pętlakonstrukcja, która powtarza ten sam blok kodu wielokrotnie
Korpus Cyklutym samym bloku kodu, który jest powtarzany (linie wcięte pod for/while)
iteracjajednym przejściem przez treść cyklu, jednym "raz" z "powtórz N razy"
warunekto, co pętla sprawdza, by zdecydować, czy kontynuować, czy zakończyć
licznikzmienna, która liczy numer iteracji lub zmienia się z każdym krokiem

Pętle for

Najczęstszym typem cyklu w Python jest for. Razem z range() może powtórzyć blok kodu określoną liczbę razy:

cikl_for.py
for i in range(5):
    print(i)

Rozkładamy na słowa

Część koduCo oznacza
for„rozpoczęcie cyklu”
izmienna pętli — na każdym kroku pobiera kolejną wartość z range(5)
in range(5)Źródło wartości: Liczby od 0 do 4
:wtedy zaczyna się treść cyklu (z wcięciem)
print(i)ciało pętli — to, co powtarza się przy każdej iteracji
Iteracja 1i = 0 → print(0)Iteracja 2i = 1 → print(1)Iteracja 3i = 2 → print(2)Iteracja 4i = 3 → print(3)Iteracja 5i = 4 → print(4)
for i in range(5): print(i) to pięć iteracji tego samego ciała pętli

Kanoniczny flowchart cyklu for

Ważne jest, aby od razu przyzwyczaić się do właściwego obrazu tego, co się dzieje: for nie "magicznie wykonuje ciała N czasie" – na każdym etapie pyta "czy jest następny element?", a jeśli tak, wykonuje ciało i ponownie pyta:

STARTUzyskaj następnyelement z range(5)Są następującerandka?TAKprint(i)temuNIEKONIEC
for i in range(5): print(i) - Pętla za każdym razem żąda kolejnego elementu

Trasa Egzekucji

Tabela śledzenia to sposób śledzenia tego, co dzieje się w każdej iteracji, linia po linii. My Będziemy korzystać z tej tabeli przez cały rozdział:

IteracjaiZakończenie (print)
100
211
322
433
544
range() z różnymi argumentami — krótko
range(5) — od 0 do 4. range(2, 8) — od 2 do 7. range(0, 10, 2) — od 0 do 8 z krokiem 2: 0, 2, 4, 6, 8. Szczegółowa analiza znajduje się na następnej stronie.

Gdy cykl zmienna nie jest potrzebny

Jeśli samo liczba powtórzeń jest ważna, a nie wartość licznika — tradycyjnie nazywa się ją _ (podkreślenie), sygnalizując „ta wartość świadomie nie jest używana”:

Rozdział 6 Kwadrat: 8 linijek → 2 wersy
Brak Pętli (Rozdział 6)
artist.forward(100)
artist.right(90)
artist.forward(100)
artist.right(90)
artist.forward(100)
artist.right(90)
artist.forward(100)
artist.right(90)
Z cyklem for
for _ in range(4):
    artist.forward(100)
    artist.right(90)
Co używać dzisiaj: pętla for. Nie jest „nowoczesny”
_ jest konwencją, a nie specjalną składnią
_ to nazwa zmiennej powszechnej Python nie obsługuje jej w żaden specjalny sposób. To po prostu umowa między programistami: „celowo nie używamy tutaj wartości pętli.” for x in range(4): też zadziała, ale czytelnik kodu będzie miał mniej jasny sygnał.
Praktyka: for cykl i terminologia
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →