Języka Python ciąg dalszy! Przedstawię Wam w tym artykule kolejną ważną konstrukcję bez której istnienie zdecydowanej większości programów byłoby co najmniej wątpliwe. Tym zagadnieniem będzie pętla "while". Pętla "while" w Pythonie nie różni się praktycznie niczym od jej pierwotnej struktury jeśli chodzi o jej programowanie. Ale więcej szczegółów na temat tego, co oznacza pętla "while", znajdziecie w środku tego wpisu, do którego teraz zapraszam.

PĘTLA "WHILE" W PYTHONIE. PODOBIEŃSTWA I RÓŻNICE

Na samej górze znajduje się odnośnik do artykułu tłumaczącego bardziej uniwersalnie niniejszą pętlę. Tutaj skupimy się na niej wyłącznie w kręgu samego Pythona. Innymi słowy, do czego ona służy i co dzięki niej możemy uzyskać w tym konkretnym języku.

Pętla "while" (ang. "dopóki") służy do wielokrotnego powtarzania tego samego bloku kodu dopóki podany warunek nie zostanie spełniony.

SKŁADNIA

Zacznijmy od samej składni. Pętla "while" w Pythonie zwykle wygląda tak:

while [warunek]:
	# dowolne instrukcje

Oto najprostsza budowa. Po słowie kluczowym "while", wprowadzamy warunek tak jak ma to miejsce przy instrukcji warunkowej. Natomiast w przeciwieństwie do niej, nie skończy się na pojedynczym wykonaniu zawartych w środku instrukcji w przypadku gdy zdanie będzie prawdziwe. Cały sens korzystania z pętli jest właśnie w tym, że można uniknąć wielokrotnego wprowadzania tych samych instrukcji. Nie mówię już o tym, że w przypadku niewiadomej liczby razy, nie byłoby to w ogóle możliwe!

Ponownie uważajcie na dwukropek! Tutaj również jest wymagany dlatego przestrzegam, żeby nie popełnić jednego z najczęstszych błędów. Potem dajemy wcięcie (również obowiązkowe) i podajemy dowolne instrukcje jakie mają zostać tam wykonane. Napiszę to jeszcze raz: każda umieszczona tam instrukcja będzie się wykonywała za każdym razem jeżeli warunek zostanie spełniony! Musicie się zastanowić co musi być powtarzane (wewnątrz pętli), a co nie (poza pętlą).

Pętla "while" w Pythonie Działanie pętli "while" w Pythonie

Pętla "while" wykonuje podane instrukcje wielokrotnie, co pozwala na wykonanie wielu operacji przy których wymaga się podjęcia tych samych czynności więcej niż jeden raz.

ZASTOSOWANIE

Pętla "while" w Pythonie nie wyróżnia się tak bardzo od języka C. Korzysta się z niej na dwa sposoby:

  1. Dodaje się na zewnątrz tak zwaną "zmienną iteracyjną" odpowiadającą za wyjście z pętli w odpowiednim momencie. Wówczas warunek będzie w postaci sprawdzania czy ta sama zmienna przyjmuje pożądaną wartość (jest mniejsza od jakiejś, większa, równa itp.). Metoda stosowana w sytuacjach, gdy chcemy żeby dany blok kodu wykonał się określoną liczbę razy oraz wiemy dokładnie kiedy pętla powinna się zatrzymać.
    i = 0
    
    while i < 10:
    	# dowolne instrukcje
    	
    	i += 1
  2. W warunku wstawia się funkcję zwracającą wartość logiczną i to od niej zależy kiedy pętla "while" w Pythonie powinna się zakończyć. Metoda doskonała do sytuacji gdy nie sposób przewidzieć ile razy iteracja (czyt. powtórzenie) musi się zrealizować, aby dany problem został rozwiązany.
    while searchingSolution():
    	# dowolne instrukcje

Ze względu na swoją budowę, wykazuje lepszą użyteczność przy tym drugim sposobie, gdyż inna odmiana pętli, "for", posiada już "w sobie" zmienną iteracyjną automatycznie kontrolującą zakończenie egzekwowania instrukcji. "while" jest bezcenne w sytuacjach, gdy nie mamy zielonego pojęcia ile powtórzeń okaże się wymaganych, żeby problem został rozwiązany.

NIESKOŃCZONA PĘTLA

Pętla "while" w Pythonie może wejść przez przypadek w falę nieskończonych iteracji z powodu naszego niedopatrzenia. Dajmy na to, że mamy taki zapis w kodzie źródłowym:

i = 0

while i < 10:
	# dowolne instrukcje

Czy wiecie już co jest źle? Brak modyfikacji licznika! Gdy używamy pętli "while" musimy samodzielnie zadbać o zmianę licznika od którego zależy dalszy przebieg programu. W przeciwnym razie, czeka nas wejście w sidła z których program już nigdy sam się wydostanie.

Nieskończona pętla "while" w Pythonie

Pętla "while" będzie działać w nieskończoność jeśli warunek cały czas będzie spełniony. Wtedy niezbędna jest nasza interwencja co do ręcznego przerwania programu.

Pozostaje Wam już tylko wcisnąć kombinację Ctrl + C. Tłumacząc lepiej niż "zabijanie", jest to wysłanie sygnału przerwania do procesu odpowiadającego za wykonywanie Waszego programu. Dodam tytułem ciekawostki, że w języku C można bezkarnie modyfikować działanie odbierania takich sygnałów, ale tutaj już wchodzimy w systemy operacyjne.

Na końcówkę warto wspomnieć o możliwości wstawienia w warunek stałej liczby lub wartości logicznej i też wyjdzie Wam nieskończona pętla "while".


To by było tyle. Jak wspomniałem, pętla "while" w Pythonie nie wyróżnia się tak bardzo od całej reszty. Bardziej już pętla "for". Gdy potrzebujecie jeszcze więcej informacji, przeczytajcie mój artykuł na temat tej samej pętli tylko w bardziej ogólnym spektrum.

PODOBNE ARTYKUŁY