RCTU8NHXC4TDV
Wąż pije kawę w kubku z napisem Witaj świecie

PYI_RY_W13_M05 Instrukcje iteracyjne i ich zapisywanie w języku programowania

Obraz wygenerowany przez sztuczną inteligencję Canva.ai
Źródło: domena publiczna.

Składnia pętli for wygląda następująco:

Linia 1. for otwórz nawias okrągły zmienna wewnętrzna zamknij nawias okrągły in otwórz nawias okrągły zbiór zamknij nawias okrągły dwukropek. Linia 2. instrukcja.

Zmienna wewnętrzna to nazwa zmiennej, która będzie przechowywała aktualnie analizowany element ze zbioru, który przechodzimy (iterujemy). Jeśli zbiorem jest lista uczniów, to do zmiennej wewnętrznej przy każdej iteracji będzie przypisywany kolejny uczeń.

Zbiorem może być tablica, ciąg znaków lub zakres stworzony za pomocą funkcji range().

Ważne!

Funkcja range() tworzy sekwencję liczb w podanym zakresie. Domyślnie pierwszą liczbą jest 0, a kolejne są domyślnie zwiększane o 1.

range(start, stop, krok)

Na przykład, range(6) zwróci zbiór liczb 0, 1, 2, 3, 4, 5. Funkcja range(2, 6) zwróci liczby 2, 3, 4, 5, a range(2, 9, 2) zwróci 2, 4, 6, 8.

Przykład 1

Przeanalizujmy instrukcję pętli for za pomocą której wypiszemy kolejne liczby naturalne z przedziału od 0 do 10

Linia 1. for i in range otwórz nawias okrągły 11 zamknij nawias okrągły dwukropek. Linia 2. print otwórz nawias okrągły i zamknij nawias okrągły.

Pętlę rozpoczynamy słowem kluczowym for. Następnie podajemy nazwę zmiennej iterującej. Jest to zmienna, której wartość będzie się zmieniała w kolejnych obrotach pętli. W tym przykładzie została nazwana  i (ale nazwa może być dowolna, byle była zgodna z zasadami nazywania zmiennych). Po zmiennej iterującej występuje słowo kluczowe in, a po nim funkcja range, której argumentem jest liczba kroków do wykonania. Na końcu zapisujemy dwukropek. a w nowej linii jedną lub kilka instrukcje, które zostaną wykonane. W tym przypadku, jest to instrukcja print(i). Wynikiem działania programu będą liczby od 0 do 10, wypisane każda w osobnej linii.

Linia 2. 1. Linia 3. 2. Linia 4. 3. Linia 5. 4. Linia 6. 5. Linia 7. 6. Linia 8. 7. Linia 9. 8. Linia 10. 9. Linia 11. 10.

Podsumowanie:

W każdym obrocie pętli zostaną wykonane instrukcje zapisane w bloku po dwukropku (blok rozpoczyna się w kolejnym wierszu. Instrukcje w bloku są zapisane z wcięciem.

Przykład 2

Pętla operująca na zbiorze danych (na przykład na liście imion) przedstawia się tak:

Linia 1. uczniowie znak równości otwórz nawias kwadratowy cudzysłów Maciek cudzysłów przecinek cudzysłów Magda cudzysłów przecinek cudzysłów Asia cudzysłów zamknij nawias kwadratowy. Linia 3. for imie in uczniowie dwukropek. Linia 4. print otwórz nawias okrągły imie zamknij nawias okrągły.

Tak zapisana pętla wykona instrukcje wewnątrz niej trzy razy, ponieważ tyle jest elementów w tablicy. Każde takie przejście nazywane jest iteracją. Zatem można powiedzieć, że w pierwszej iteracji wypiszemy imię Maciek, w kolejnej Magda a w ostatniej Asia.

Przykłady wykorzystania pętli for

Wyliczanka

Linia 1. for x in range otwórz nawias okrągły 10 zamknij nawias okrągły dwukropek. Linia 2. print otwórz nawias okrągły cudzysłów Witaj przecinek swiecie wykrzyknik cudzysłów zamknij nawias okrągły.

Zwróćmy uwagę na funkcję range(), która jest bardzo często wykorzystywana w pętlach. W powyższym kodzie została wykorzystana skrócona składnia funkcji z jednym argumentem, jakim jest liczba elementów w zbiorze. Zmodyfikujmy powyższy kod, aby przed tekstem: Witaj, swiecie!, drukował po kolei numery z zakresu range():

Linia 1. for x in range otwórz nawias okrągły 10 zamknij nawias okrągły dwukropek. Linia 2. print otwórz nawias okrągły str otwórz nawias okrągły x zamknij nawias okrągły plus cudzysłów kropka Witaj przecinek swiecie wykrzyknik cudzysłów zamknij nawias okrągły.

Wynikiem będzie dziesięciokrotne wypisanie (numer). Witaj swiecie!, ale numerowane od 0 do 9. W programowaniu przyjęło się, że wyliczanie elementów rozpoczyna się od 0, a nie – jak przywykliśmy – od 1.

Jeśli jednak chcemy numerować od 1 do 10, należy zmienić parametry funkcji range(), aby rozpoczynała zakres od 1 i kończyła na 11.

Linia 1. for x in range otwórz nawias okrągły 1 przecinek 11 zamknij nawias okrągły dwukropek. Linia 2. print otwórz nawias okrągły str otwórz nawias okrągły x zamknij nawias okrągły plus cudzysłów kropka Witaj przecinek swiecie wykrzyknik cudzysłów zamknij nawias okrągły.
Ważne!

Do drukowania wyniku wykorzystaliśmy funkcję str(), która zamienia typ integer na typ string. Gdybyśmy chcieli bezpośrednio połączyć liczbę całkowitą z ciągiem znaków, interpreter zwróciłby błąd.

Suma liczb

Napiszmy program liczący sumę liczb z podanego zakresu. W tym celu zdefiniujemy zakres od 1 do 10, a także zmienną suma.

Linia 1. suma znak równości 0. Linia 3. for x in range otwórz nawias okrągły 1 przecinek 11 zamknij nawias okrągły dwukropek. Linia 4. suma znak równości suma plus x. Linia 6. print otwórz nawias okrągły suma zamknij nawias okrągły.

W trakcie każdej iteracji kolejna liczba jest dodawana do sumy. Po zakończeniu pętli, drukujemy wynik.

Słownik

tablica
tablica

struktura danych, w której można przechowywać dane; w języku Python tablice są często nazywane listami.

funkcja
funkcja

wydzielona część programu, która przetwarza dane i ewentualnie zwraca na ich podstawie pewną wartość; przykładową funkcją w języku Python jest print().