Na 31 marca, przygotowałem dla Was materiał dotyczący następnej fundamentalnej rzeczy bez której programowanie wielu funkcjonalności byłoby nawet niemożliwe do zrealizowania. Zaprezentuję Wam jak wygląda, do czego służy oraz w jakich sytuacjach najlepiej sprawdza się pętla "for" w Pythonie. Dowiecie się również czym się ona różni od omawianej wcześniej pętli "while".

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

Warto podkreślić, że w odróżnieniu od pętli "while", ta już różni się mocno od wersji tradycyjnej w języku C. Tak jak wtedy, tutaj interesuje nas tylko postać w języku Python. Tu się robi ciekawiej, bo nie ma postaci iteracyjnej znanej z takich języków jak Java czy C#! Czyli nie ma możliwości, żeby podstawić licznik i modyfikować jego wartość. Robi się to w inny sposób.

SKŁADNIA

Pętla "for" w Pythonie polega na ustawieniu zmiennej lokalnej będącej aktualnym elementem podanej kolekcji takiej jak lista, krotka czy słownik. Wybijcie sobie z głowy tworzenie zmiennej i przypisywanie jej początkowej wartości po operatorze przypisania. Najprostszy zapis prezentuje się w taki oto sposób:

for [zmienna] in [kolekcja]:
	# dalsze instrukcje

Dla przykładu, załóżmy że mamy listę pięciu słów. To wówczas przy użyciu pętli "for", nasza zmienna występująca obok słowa "for" będzie reprezentować każde słówko jeden po drugim:

words = ["Programowanie", "w", "Pythonie", "jest", "łatwiejsze"]

for w in words:
    # dalsze instrukcje
Pętla "for" w Pythonie Działanie pętli "for" w Pythonie

Pętla "for" składa się ze zmiennej iteracyjnej, która "wciela się" w jeden z elementów podanej kolekcji i powtarza swoje czynności dopóki nie natrafi na koniec kolekcji.

PODEJŚCIE "SEMI-ITERACYJNE"

Wspomniałem na początku, że pętla "for" w Pythonie dopuszcza jedynie możliwość "chodzenia" po kolekcji. Czy to znaczy w takim razie, że nie da się traktować zmiennej jak licznik, żeby ulegał on zmianie co iterację? Niezupełnie. Jest sposób, który można interpretować jak obejście i posłuży Wam do tego celu funkcja "range". "range" zwraca listę liczb po podanym zakresie "od do" jako dwa przyjmowane parametry i tak możecie to zrobić iteracyjnie. Dlatego nazwałem to "obejściem", gdyż to nie jest de facto modyfikowanie licznika co powtórzenie tylko przelatywanie przez liczbowe argumenty i przyjmowanie konkretnej liczby z indeksu.

Tak to wygląda od strony kodowej:

for i in range(A, B):
	# dalsze instrukcje

Przestrzegam jednak przed jedną pułapką dotyczącą zakresu! Wprawdzie "range" pozwoli iterować jak w tradycyjnej formie z języka C do określonego momentu, aczkolwiek nie uwzględnia on ostatniej liczby będącej zadanym "maksimum"! Zatem gdy pętla "for" w Pythonie otrzyma zakres:

range([min], [max])

będzie on w rzeczywistości poddawany iterowaniu od minimum do (maksimum - 1). Innymi słowy, trzeba dodać do zakresu maksymalnego jedynkę.

Zakres liczb zwracanych przez funkcję "range" w Pythonie

Funkcja "range" tworzy listę liczbowych wartości według podanego zakresu jednakże nie uwzględnia on ostatniej wartości podanej jako maksimum!

ZASTOSOWANIE

Obie formy zapisów doskonale pokazują do czego najlepiej pasuje pętla "for" w Pythonie. Do rozwiązania każdego problemu w którym możemy łatwo przewidzieć ile powtórzeń okaże się niezbędnych, żeby otrzymać rozwiązanie. W przypadku Pythona będzie tylko jedna granica - rozmiar podanej kolekcji.


Dotarliśmy do mety. Pętla "for" w Pythonie pozbawiona jest możliwości podejścia "czysto iteracyjnego" i myślę, że to jest najważniejszy wniosek do wyciągnięcia na finisz.

PODOBNE ARTYKUŁY