Rozdział 10 · Trochę automatyzacji!

Przerwij misję!" break i continue

Dwa sposoby sterowania pętlą od środka — zatrzymać ją całkowicie lub pominąć jeden krok — i specjalny blok else, który wie, czy break.

Czasem trzeba wyjść z pętli wcześniej albo pominąć jeden krok, nie kończąc pętli W całości — są dwa słowa kluczowe i jeden szczególny sposób, by sprawdzić, czy break.

break to całkowicie przerwać ten cykl

break.py
for number in range(1, 100):
    if number == 5:
        break  # cykl zatrzymuje się na dobre
    print(number)

Będzie wydawać tylko 1, 2, 3, 4 – tak szybko, jak number staje się 5, pętla zostaje przerwana bez oczekiwania na pozostałe 94 wartości range().

STARTfor number in range(1,100)number == 5?NIEreszta ciałaTAK – break: wyjdź z obieguKONIEC
break wychodzi z obiegu NATYCHMIAST – ale nie z programu
break nie kończy programu
break przerywa jedynie pętlę, w której się znajduje — kod po pętli działa normalnie. To nie jest analogia wyjścia z programu, lecz wyjścia z powtarzania.

continue to pominąć ten krok

continue.py
for number in range(1, 6):
    if number == 3:
        continue  # pomiń resztę ciała w tym kroku
    print(number)

Wyjście 1, 2, 4, 5 – liczba 3 jest pomijana, ale cykl trwa dalej, w przeciwieństwie do break.

STARTfor number in range(1,6)number == 3?NIEreszta ciałaTAK – continue: do kolejnego kroku
continue pomija resztę CIAŁA i przechodzi do kolejnej iteracji – cykl trwa dalej
continue nie wychodzi z cyklu
continue jedynie przerywa bieżący przepływ ciała — cykl sam trwa dalej i od następnego elementu. To jest odwrotne break, a nie jego łagodniejsza wersja.

break i continue w pobliżu

breakcontinue
Co się dziejecykl zatrzymuje się na zawszeobecna iteracja się przerwie, pętla trwa dalej
Kod po pętliwykonany natychmiastkursuje dopiero po zakończeniu pętli
Częsty przykładznaleźli to, czego szukali — nie ma potrzeby kontynuowaćten element nie pasuje — pomijamy właśnie go

break w while True

Najczęstsze miejsce dla break — cykl while True, gdzie warunek zatrzymania łatwiej sprawdzić w środku ciała:

while_true_break.py
komanda = ""
while True:
    komanda = input(„Wprowadź komendę (stop - wyjście): ”)
    if komanda == "stop":
        break
    print(„Wykonuję:”, komanda)
continue przed aktualizacją licznika to częsta pułapka
W pętli while do opublikowania continue PRZED wierszem, który zmienia stan (na przykład, count += 1), niebezpieczne: ten łańcuch znaków będzie pomijany za każdym razem, gdy zostanie wywołany continue, a ten cykl może się nigdy nie skończyć. Przyjrzymy się bliżej tutorialowi dotyczącemu pętli debugowania.

loop-else jest else cyklu, a nie if

Cykle for oraz while rzadko jedzą Używaną, ale czasem bardzo wygodną funkcją jest blok else, które są wykonywane, tylko wtedy, gdy pętla kończyła się bez break:

loop_else.py
chisla = [4, 8, 15, 16, 23, 42]

for n in chisla:
    if n == 100:
        print(„Znalazłem 100!”)
        break
else:
    print(„100 nie znalezionych ani razu”)
STARTUzyskaj następnyelement z chislaSą następującerandka?NIEprint( 'nie znaleziono')TAKn == 100?TAKprint('Znaleziono!');breakKONIECNIE – z powrotem
else dla pętli jest wykonywana tylko wtedy, gdy pętla osiągnęła koniec BEZ break
loop-else NIE jest if/else
Chociaż słowo else tak samo jak if, sens jest zupełnie inny. else u if oznacza „jeśli warunek jest fałszywy”. else w pętli oznacza „jeśli pętla zakończyła się sama, a nie przez break”. Jeśli wewnątrz pętli nie było break w ogóle — blok else zawsze zostanie spełnione zaraz po zakończeniu cyklu.

Mini-projekt: cykl zespołów

Będziemy zbierać while True, break oraz pracuj z łańcuch znakówi/warunkami z rozdziałów 8-9 w małej, interaktywnej pętli. To jest tutorial Demonstracja techniki, a nie zastępstwo dla interpretera PySH z wprowadzenia kursu:

cikl_komand.py
zhurnal = []
while True:
    komanda = input(„Drużyna (help/list/stop):”).strip().lower()
    if komanda == "stop":
        print(„Kończę pracę.”)
        break
    elif komanda == "help":
        print(„Dostępne: help, list, stop”)
    elif komanda == "list":
        print(„Magazyn:”, zhurnal)
    else:
        zhurnal.append(komanda)
        print(f"Dodane do dziennika: {komanda}")
Praktyka: break i continue
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →
Praktyka: Mini-projekt i loop-else Cykl Teams
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →