Pętle

Pętle w Pythonie stanowią kluczowy element, umożliwiający wielokrotne wykonywanie określonych fragmentów kodu. Od prostych iteracji przez listy, po realizację złożonych operacji na danych, pętle oferują skuteczne i elastyczne rozwiązania dla szerokiego spektrum problemów. W Pythonie dwie główne pętle, ’for’ i ’while’, mają swoje wyjątkowe zastosowania, a zrozumienie ich działania i właściwe wykorzystanie stanowi podstawę dla pisania optymalnego i klarownego kodu.

Pętla 'for’

Pętla ’for’ w Pythonie służy do iterowania przez elementy sekwencji lub innych obiektów iterowalnych. Pętla będzie kontynuowana, aż zostaną przetworzone wszystkie elementy w sekwencji, po czym program przejdzie do następnej linii kodu po bloku pętli ’for’.

Składnia pętli ’for’ jest dość prosta i zrozumiała:

for zmienna in sekwencja:
      blok kodu
      ...

Gdzie:

zmienna – reprezentuje nazwę zmiennej, która będzie przechowywać aktualną wartość elementu z sekwencji w każdej iteracji pętli,

sekwencja – to obiekt iterowalny, przez który pętla będzie iterować,

blok kodu – to zestaw instrukcji, które zostaną wykonane dla każdego elementu w sekwencji.

Przykład:

for n in range(1, 5):
    print(f'2 do potęgi {n} to {2**n}')

Wynik działania powyższego kodu:

2 do potęgi 1 to 2
2 do potęgi 2 to 4
2 do potęgi 3 to 8
2 do potęgi 4 to 16

Funkcja ’range(start, stop [,step])’ tworzy obiekt, który reprezentuje zakres liczb całkowitych o wartościach od ’start’ w górę, ale nie włączając ’stop”. Jeżeli wartość początkowa nie zostanie podana, domyślnie przyjmowane jest zero. Dodatkowo, można określić opcjonalny krok iteracji ’step’ jako trzeci argument funkcji.

Oto kilka przykładów:

a = range(4)                #a=0,1,2,3
b = range(1, 7)            #b=1,2,3,4,5,6
c = range(0, 14, 3)     #c=0,3,6,9,12
d = range(7, 1, -1)      #d=7,6,5,4,3,2

Pętla ’for’ w Pythonie nie jest ograniczona tylko do sekwencji liczb całkowitych. Można jej używać do iterowania przez różne typy obiektów, takie jak ciągi znaków, listy, słowniki czy pliki. Oto przykłady:

Przykład – wyświetlenie poszczególnych znaków wiadomości:

message = 'Hello World'
for c in message:
    print(c)

Wynik działania powyższego kodu:

H
e
l
l
o
 
W
o
r
l
d

Przykład – wyświetlenie elementów listy:

names = ['Dawid', 'Marek', 'Ania', 'Filip']
for name in names:
    print(name)

Wynik działania powyższego kodu:

Dawid
Marek
Ania
Filip

Przykład – wyświetlenie wszystkich elementów słownika:

prices = {'GOOG': 490.10, 'IBM': 91.50, 'AAPL': 123.15}
for key in prices:
    print(key, '=', prices[key])

Wynik działania powyższego kodu:

GOOG = 490.1
IBM = 91.5
AAPL = 123.15

Przykład – wyświetlenie wszystkich linii pliku foo.txt:

with open('foo.txt') as file:
    for line in file:
        print(line, end='')

Wynik działania powyższego kodu, w moim przypadku, plik foo.txt zawierał 4 linie takiego tekstu:

1. njVFuNgdXB7aNI80Xs2785VmiHff2
2. JR1lztn0VJ1MI7ywffwRCuChzJOPL
3. 652yojVoOy3jUpHkNsHwE2djzlGmF
4. 9Muc0jDUmIJLh2WcLnvwCLPmJEpDV

Pętla 'while’

Pętla ’while’ w Pythonie jest używana do wykonywania bloku instrukcji, dopóki warunek jest spełniony.

Składnia pętli ’while’ jest następująca:

while warunek:
      blok kodu
      ...

Gdzie ’warunek’ to wyrażenie logiczne, które jest sprawdzane przed każdą iteracją pętli. Jeśli ’warunek’ jest prawdziwy (True), pętla kontynuuje swoje wykonanie. Gdy ’warunek’ staje się fałszywy (False), wykonanie pętli jest zakończone i program przechodzi do następnego bloku kodu poza pętlą.

Przykład:

i = 0

while i < 5:
    print(i)
    i += 1

Wynik działania powyższego kodu:

0
1
2
3
4

W tym przykładzie pętla ’while’ będzie wykonywana, dopóki ’i’ jest mniejsze niż 5. W każdej iteracji pętli, zmienna ’i’ jest zwiększana o 1.

Instrukcja 'break’

Instrukcja ’break’ w Pythonie jest używana do natychmiastowego zakończenia wykonywania pętli, niezależnie od tego, czy jest to pętla ’for’, czy ’while’. Po wykonaniu instrukcji ’break’, program kontynuuje wykonanie od pierwszej instrukcji znajdującej się poza pętlą.

Składnia instrukcji ’break’ jest następująca:

break

Przykład zastosowania instrukcja ’break’ w pętli ’for’:

for i in range(5):
    if i == 3:
        break
    print(i)

Wynik działania powyższego kodu:

0
1
2

W tym przykładzie pętla ’for’ będzie iterować przez sekwencję liczb od 0 do 4, generowaną przez funkcję ’range(5)’. Dla każdej iteracji, zmienna ’i’ przyjmie kolejną wartość z tej sekwencji. Kiedy ’i’ osiągnie wartość 3, instrukcja warunkowa ’if i == 3’ zostanie spełniona, co spowoduje wykonanie instrukcji ’break’. Instrukcja ’break’ natychmiast przerwie pętlę ’for’, co oznacza, że pętla nie będzie kontynuować iteracji dla ’i = 4’ i nie będzie wykonywać dalszych instrukcji wewnątrz bloku pętli.

Przykład zastosowania instrukcja ’break’ w pętli ’while’:

i = 0

while True:
    print(i)
    i += 1
    if i > 5:
        break

Wynik działania powyższego kodu:

0
1
2
3
4
5

W tym przykładzie pętla ’while’ zaczyna się z warunkiem ’True’, co oznacza, że będzie się ona wykonywać nieskończenie, dopóki nie napotka na instrukcję ’break’. W każdej iteracji pętli program najpierw wypisuje wartość zmiennej ’i’, a następnie zwiększa ją o 1. Gdy wartość ’i’ przekracza 5, warunek ’if i > 5’ staje się prawdziwy, co aktywuje instrukcję ’break’. W rezultacie pętla przerywa swoje działanie.

Instrukcja 'continue’

Instrukcja ’continue’ w Pythonie jest używana w pętlach ’for’ lub ’while’ do pominięcia bieżącej iteracji pętli i kontynuowania następnej iteracji. Gdy instrukcja ’continue’ jest napotkana, cała pozostała część kodu w bieżącej iteracji pętli jest pomijana, a pętla przechodzi do sprawdzenia warunku pętli (w przypadku pętli ’while’) lub przechodzi do następnej wartości w sekwencji (w przypadku pętli ’for’).

Składnia instrukcji ’continue’ jest następująca:

continue

Przykład zastosowania instrukcja ’continue’ w pętli ’for’:

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)

Wynik działania powyższego kodu:

1
3
5
7
9

W tym przykładzie pętla ’for’ iteruje przez liczby od 0 do 9 (generowane przez funkcję ’range(10)’). Dla każdej liczby pętla sprawdza, czy liczba jest parzysta (czyli czy reszta z dzielenia przez 2 wynosi 0, sprawdzone przez ’i % 2 == 0’). Jeśli liczba jest parzysta, instrukcja ’continue’ jest wykonywana, co powoduje pominięcie reszty kodu w bieżącej iteracji pętli i przechodzenie do następnej iteracji. W rezultacie ’print(i)’ jest wykonane tylko dla liczb nieparzystych.

Przykład zastosowania instrukcja ’continue’ w pętli ’while’:

i = 0

while i < 10:
    if i % 2 != 0:
        i += 1
        continue
    print(i)
    i += 1

Wynik działania powyższego kodu:

0
2
4
6
8

W tym przykładzie pętla ’while’ wykonuje się, dopóki wartość zmiennej ’i’ jest mniejsza niż 10. Pętla sprawdza, czy ’i’ jest liczbą nieparzystą (sprawdzając, czy reszta z dzielenia ’i’ przez 2 nie jest równa 0). Jeśli i jest nieparzyste, instrukcja ’continue’ jest wywoływana, co powoduje pominięcie dalszej części kodu w tej iteracji i kontynuowanie pętli z kolejną wartością ’i’. Zanim jednak nastąpi ’continue’, wartość ’i’ jest zwiększana o 1, aby uniknąć nieskończonej pętli. Dla liczb parzystych kod wewnątrz ’if’ jest pomijany, a ’print(i)’ wypisuje liczbę. W rezultacie program wypisuje tylko liczby parzyste od 0 do 8, ponieważ liczby nieparzyste są pomijane przez pętlę.

Zbigniew Marcinkowski - IamZIBI.pl

Zbigniew Marcinkowski

Mam na imię Zbigniew, ale możesz mi mówić ZiBi. Od dzieciństwa fascynowała mnie technologia. W tamtym czasie raczej psułem rzeczy, niż je naprawiałem. Wszystko się zmieniło, gdy dostałem swój pierwszy komputer. Odnalazłem wówczas swoją pasję, która została ze mną na dobre i na złe. Więcej na ten temat możesz przeczytać na stronie "O mnie".

Dodaj komentarz