W programowaniu wykorzystujemy pętle do powtarzania grupy poleceń. Powtórzenie często nazywamy iteracją.
Pętli for używamy w sytuacji, gdy z góry znamy liczbę powtórzeń. W pozostałych przypadkach używamy pętli while.
Prosta pętla for
Podstawowe zastosowanie pętli for polega na zwykłym powtarzaniu zestawu poleceń. Za pomocą for i in range(10) powtórzymy zestaw poleceń 10 razy. Polecenia, które mają być powtarzane, muszą być wcięte. W poniższy sposób wypiszemy dziesięć razy Hello:
for i in range(10):
print("Hello")
Zmienna sterująca
W trakcie działania pętli zmienia się wartość zmiennej sterującej (w powyższym przykładzie jest to i). W każdym powtórzeniu pętli możemy więc wykonać coś nieco innego, w zależności od aktualnej wartości tej zmiennej. To, jakie wartości przyjmuje zmienna sterująca, określa część znajdująca się po słowie in. Jeśli użyjemy podstawowego range, zmienna sterująca będzie stopniowo zwiększana o jeden. Na przykład poniższa pętla wypisze liczby od 0 do 9:
for i in range(10):
print(i)
W ramach pętli możemy korzystać z wielu zmiennych, ale tylko wartość zmiennej sterującej zmienia się automatycznie. Rozważmy przykład:
y = 1
z = 2
for x in range(10):
y = x + y + z
print(x, y, z)
Zmienną sterującą pętli jest x, którego wartość będzie się stopniowo zmieniać (od 0 do 9). Wartość zmiennej y również będzie się zmieniać, ponieważ wewnątrz pętli znajduje się instrukcja przypisania do y. Natomiast wartość zmiennej z pozostanie we wszystkich iteracjach taka sama, ponieważ z nie jest zmienną sterującą ani nie przypisujemy do niej niczego w pętli.
Zastosowanie range
W podstawowych zastosowaniach łączymy pętlę for z funkcją range, która zwraca przedział liczb, a zmienna sterująca przyjmuje kolejne wartości z tego przedziału.
Uwaga: w informatyce często liczymy od zera (a nie od jedynki jak zazwyczaj). Dlatego tutaj range(n) zwraca wartości od 0 do n-1.
Jeśli funkcji range podamy dwa parametry, tzn. wywołamy range(a, b), to otrzymamy przedział liczb od a do b-1. Możemy podać także trzeci parametr określający długość kroku. Na przykład:
for x in range(5, 13): print(x, end=" ") # 5 6 7 8 9 10 11 12
for x in range(5, 16, 3): print(x, end=" ") # 5 8 11 14
for x in range(8, 0, -1): print(x, end=" ") # 8 7 6 5 4 3 2 1
Pętli for można używać nie tylko w połączeniu z range, lecz także z innymi typami danych – na przykład z listami:
for x in [3, 7, 10]:
print(x)
Przykłady użycia pętli for
Parzyste i nieparzyste
Wypisanie informacji o parzystości i nieparzystości pierwszych n liczb:
n = 20
for i in range(1, n+1):
if i % 2 == 0:
print(i, "jest parzysta")
else:
print(i, "jest nieparzysta")
Suma ciągu liczb
Obliczenie sumy liczb od 1 do n:
n = 10
s = 0
for i in range(1, n+1):
s = s + i
print("Suma od 1 do", n, "wynosi", s)
Potęgi liczby dwa
Wypisanie informacji o pierwszych n potęgach liczby dwa:
n = 10
for x in range(1, n+1):
print("Dwa do potęgi", x, "wynosi", 2**x)