Wprowadzenie
Używanie pętli for i while w Pythonie pozwala zautomatyzować i powtarzać zadania w efektywny sposób.
Ale czasami czynnik zewnętrzny może wpłynąć na sposób działania programu. W takiej sytuacji możesz chcieć, aby Twój program całkowicie opuścił pętlę, pominął część pętli przed kontynuowaniem lub zignorował ten zewnętrzny czynnik. Te czynności można wykonać za pomocą instrukcji break
continue
i pass
.
Deklaracja break
W Pythonie instrukcja break
zapewnia możliwość wyjścia z pętli, gdy zostanie wywołany warunek zewnętrzny. Instrukcję break
umieścisz w bloku kodu pod instrukcją pętli, zwykle po warunkowej instrukcji if
.
Przyjrzyjrzyjmy się przykładowi, który wykorzystuje instrukcję break
w pętli for
:
number = 0for number in range(10): if number == 5: break # break here print('Number is ' + str(number))print('Out of loop')
W tym małym programie zmienna number
jest inicjalizowana na 0. Następnie instrukcja for
konstruuje pętlę tak długo, jak długo zmienna number
jest mniejsza niż 10.
Wewnątrz pętli for
znajduje się instrukcja if
, która przedstawia warunek, że jeśli zmienna number
jest równa liczbie całkowitej 5, to pętla zostanie przerwana.
Wewnątrz pętli znajduje się również instrukcja print()
, która będzie wykonywana przy każdej iteracji pętli for
aż do jej przerwania, ponieważ znajduje się ona po instrukcji break
.
Aby wiedzieć, kiedy wychodzimy z pętli, umieściliśmy końcową instrukcję print()
poza pętlą for
.
Gdy uruchomimy ten kod, nasze dane wyjściowe będą następujące:
OutputNumber is 0Number is 1Number is 2Number is 3Number is 4Out of loop
Wynika z tego, że gdy liczba całkowita number
zostanie oceniona jako równoważna 5, pętla zostanie przerwana, ponieważ program został o tym poinformowany za pomocą instrukcji break
.
Konstrukcja break
powoduje, że program wyłamuje się z pętli.
KonstrukcjaContinue
Konstrukcja continue
daje możliwość pominięcia części pętli, w której wywołany jest warunek zewnętrzny, ale przejścia do zakończenia reszty pętli. Oznacza to, że bieżąca iteracja pętli zostanie przerwana, ale program powróci do początku pętli.
Konstrukcja continue
będzie znajdować się w bloku kodu pod instrukcją pętli, zwykle po warunkowej instrukcji if
.
Używając tego samego programu pętli for
jak w sekcji Break Statement powyżej, użyjemy instrukcji continue
zamiast instrukcji break
:
number = 0for number in range(10): if number == 5: continue # continue here print('Number is ' + str(number))print('Out of loop')
Różnica w użyciu instrukcji continue
zamiast instrukcji break
polega na tym, że nasz kod będzie kontynuowany pomimo zakłóceń, gdy zmienna number
zostanie oceniona jako równoważna 5. Spójrzmy na nasze dane wyjściowe:
OutputNumber is 0Number is 1Number is 2Number is 3Number is 4Number is 6Number is 7Number is 8Number is 9Out of loop
Tutaj Number is 5
nigdy nie występuje w danych wyjściowych, ale pętla kontynuuje po tym punkcie, aby wydrukować linie dla liczb 6-10 przed opuszczeniem pętli.
Określenia continue
można użyć, aby uniknąć głęboko zagnieżdżonego kodu warunkowego lub zoptymalizować pętlę przez wyeliminowanie często występujących przypadków, które chciałbyś odrzucić.
Określenie continue
powoduje, że program pomija pewne czynniki, które pojawiają się w pętli, ale następnie kontynuuje przez resztę pętli.
Konstrukcja pass
Gdy zostanie wywołany warunek zewnętrzny, instrukcja pass
pozwala obsłużyć warunek bez jakiegokolwiek wpływu na pętlę; cały kod będzie nadal odczytywany, chyba że wystąpi instrukcja break
lub inna.
Tak jak w przypadku innych instrukcji, instrukcja pass
będzie znajdować się w bloku kodu pod instrukcją pętli, zazwyczaj po warunkowej instrukcji if
.
Używając tego samego bloku kodu co powyżej, zastąpmy instrukcję break
lub continue
instrukcją pass
:
number = 0for number in range(10): if number == 5: pass # pass here print('Number is ' + str(number))print('Out of loop')
Konstrukcja pass
występująca po instrukcji warunkowej if
mówi programowi, aby kontynuował wykonywanie pętli i zignorował fakt, że zmienna number
podczas jednej z jej iteracji ewaluuje jako równoważna 5.
Uruchomimy program i przeanalizujemy dane wyjściowe:
OutputNumber is 0Number is 1Number is 2Number is 3Number is 4Number is 5Number is 6Number is 7Number is 8Number is 9Out of loop
Używając instrukcji pass
w tym programie, zauważymy, że program działa dokładnie tak, jak by działał, gdyby nie było w nim żadnej instrukcji warunkowej. Instrukcja pass
mówi programowi, aby zignorował ten warunek i kontynuował działanie programu jak zwykle.
pass
Instrukcja może tworzyć minimalne klasy, lub działać jako placeholder podczas pracy nad nowym kodem i myślenia na poziomie algorytmicznym przed ustaleniem szczegółów.
Wniosek
Konstrukcje break
continue
, i pass
w Pythonie pozwolą Ci efektywniej wykorzystywać pętle for
i while
w Twoim kodzie.
Aby dowiedzieć się więcej o break
i pass
, możesz prześledzić nasz samouczek „Jak stworzyć Twitterbota z Pythonem 3 i biblioteką Tweepy”.