Rozdział 10 · Trochę automatyzacji!

Mini-projekt – spirale łuków

Kończymy rozdział wzorcem, który zmienia się na każdym etapie cyklu, i podsumowujemy wyniki.

Mini-Projekt Ostatniego Rozdziału: Spirala Łuku – każdy wątek jest mniejszy poprzednie.

spirali_iz_dug.py
radius = 5

for _ in range(60):
    artist.circle(radius, 90)   # Łuk ćwierćkoła
    radius += 3                 # Za każdym razem trochę więcej
spirali_iz_dug.py
import turtle

screen = turtle.Screen()
screen.setup(width=420, height=420)
artist = turtle.Turtle()
artist.speed(0)
artist.pencolor("#5B24F9")
artist.pensize(2)

radius = 5
for _ in range(60):
    artist.circle(radius, 90)
    radius += 3

screen.exitonclick()
Rezultat
Spirala z rosnących łuków
60 łuków, promień rośnie z 5 o 3 przy każdym kroku — rozwijająca się spirala
Zmiana zmiennej w pętli — normalna sprawa
W przeciwieństwie do poprzednich przykładów, tutaj radius się zmienia każdym kroku cyklu powoduje to efekt rosnącej spirali, a nie powtarzającego się wzoru.

break w Turtle jest zatrzymanie się przed końcem

break świetnie działa w pętlach wewnętrznych, które rysują grafikę — na przykład, aby pozostać na ekranie:

break_v_turtle.py
dlina = 10
for _ in range(50):
    if artist.xcor() > 150:
        break
    artist.forward(dlina)
    artist.left(90)
    dlina += 6
break_v_turtle.py
import turtle

screen = turtle.Screen()
screen.setup(width=420, height=420)
artist = turtle.Turtle()
artist.speed(0)
artist.pencolor("#5B24F9")
artist.pensize(3)

dlina = 10
for _ in range(50):
    if artist.xcor() > 150:
        break
    artist.forward(dlina)
    artist.left(90)
    dlina += 6

screen.exitonclick()
Rezultat
Kwadratowa spirala, przycięta break
Kwadratowa spirala odrywa się w środku ostatniego zwrotu – gdy xcor() przekroczy 150, break zatrzymuje cykl
50 zaplanowano, ale wykonało się mniej
Pętla była gotowa do wykonania 50 razy, ale faktycznie ukończona wcześniej, gdy tylko spełniono warunki artist.xcor() > 150 się sprawdziło. Dlatego ostatni segment na zdjęciu jest krótszy niż powinien był być pełny obrót — break przerywa rysunek dokładnie w środku kroku.
★★ Zadanie samodzielne
Spirala z kwadratów

Zastąp łuk małym kwadratem (pętlą czterostronną) wewnątrz zewnętrznej pętli, aby stworzyć spiralę z zmniejszającymi się lub rosnącymi kwadratami.

Praktyka: Spirale łuków
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →
Praktyka: break w Turtle jest kwadratową spiralą
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie
Otwórz praktykę →

Podsumowanie rozdziału

Narzędzia pętli — na przyszłość

Rozdział 10 Podsumowanie Ściągawka
Liczba powtórzeń jest znana z góry
for ... in range(n)
Brutalna siła gotowej sekwencji (łańcuch znaków, lista)
for element in sekwencję
Potrzebujesz zarówno indeksu, jak i wartości
for i, znaczenie in enumerate(...)
Liczba powtórzeń nie jest znana z góry
while stan
Warunek zatrzymania wygodniej sprawdzić w środku ciała
while True + break
Musimy się dowiedzieć, czy był jakiś break
for/while … else
Musisz pominąć jeden krok, nie wychodząc z pętli
continue
Nie sztywne zasady – wytyczne, które stają się nawykiem z praktyką

Czego nauczyliśmy się w tym rozdziale

  • Powtarzanie to trzecia struktura algorytmu po sekwencji i rozgałęzieniu (Rozdział 9).
  • for ... in range(n) powtarza blok kodu określoną liczbę razy — pętla pyta "Czy jest następny przedmiot?", zamiast N wykonać ciało "magicznie".
  • range() nie lista, lecz generator liczb; jego stop się nie włącza — ta sama logika co w liniach z rozdziału 8.
  • enumerate() daje jednocześnie zarówno indeks, jak i wartość; licznik i akumulator to dwa podstawowe wzorce stanów w pętli.
  • while powtarza akcję, dopóki warunek pozostaje prawdziwy — używane, gdy liczba powtórzeń jest nieznana.
  • break przerywa pętlę całkowicie; continue pomija bieżący krok; opcjonalne else pętla działa tylko bez break.
  • Cykle można zagnieżdżać w sobie — wtedy wewnętrzny cykl wykonuje się całkowicie przy każdym kroku zewnętrznego, a łączna liczba iteracji mnoży się.
  • Większość błędów pętli mieści się w kilkunastu typowych scenariuszach — tabela śledzenia stworzona ręcznie pomaga znaleźć każdy z nich.
  • Wszystkie ręcznie rysowane kształty z rozdziałów 6-7 można teraz zapisać w 2-4 linijkach w cyklu, a my widzieliśmy ich prawdziwe, naprawdę ukończone rezultaty.

co dalej

Widzieliśmy już pętle działające z listami liczb — [4, 8, 15, 16, 23, 42]. W następnym rozdziale szczegółowo przeanalizujemy, jak same zbiory danych są zorganizowane Listy, krotki, zbiory i słowniki to właśnie dla cykli istnieją w prawdziwych programach.