Python • kurs podstawowy • lekcja 12
Pętla for i range()
Chcesz ponumerować rundy bez ręcznego zwiększania licznika.
Twój cel: Użyjesz for do przejścia po elementach i dobierzesz granice range().Warunki oraz model pętli while.
Od potrzeby do kodu
for pobiera kolejny element z obiektu, po którym można przechodzić, np. napisu lub range. Takie przechodzenie nazywamy iteracją. Nie musisz sam zmieniać zmiennej sterującej, jak przy while.
range(stop) opisuje liczby od 0 przed stop. range(start, stop) zaczyna od start, a range(start, stop, step) pozwala podać krok. Granica stop nigdy nie jest elementem zakresu. Krok może być ujemny przy odliczaniu, ale nie może wynosić zero.
Pętla for nie wymaga, aby uczeń znał liczbę elementów z góry. Jej zadaniem jest przejść po kolejnych elementach. W napisie elementem będzie znak. Pusty zakres oznacza zero iteracji. Zmiana number wewnątrz ciała nie zmienia następnej wartości pobranej z range.
Przewidź przed uruchomieniem
for number in range(2, 7, 2):
print(number)
for letter in "OK":
print(letter)
Porównaj wynik i prześledź mechanizm
2, 4, 6, O i K, każda wartość w osobnej linii. Zakres dodaje krok 2, ale zatrzymuje się przed 7. Druga pętla przechodzi po dwóch znakach napisu.
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
2
4
6
O
K
| Element zakresu | 2 | 4 | 6 |
|---|---|---|---|
| Następna kandydatka | 4 | 6 | 8 — poza zakresem |
Zmień działający program
Zbuduj odliczanie 3, 2, 1 przez range z krokiem -1.
Pierwsza wskazówka
Zachowaj działający punkt wyjścia. Zlokalizuj konstrukcję wskazaną w poleceniu i zmień tylko ten etap. Przed uruchomieniem zapisz oczekiwany efekt.
Porównaj swoją modyfikację
for number in range(3, 0, -1):
print(number)
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
3
2
1
Znajdź przyczynę problemu
Celowo błędny przykład diagnostyczny. Najpierw postaw hipotezę. Nie kopiuj tej wersji jako poprawnego rozwiązania.
Zamierzone działanie: Wyświetl liczby od 1 do 5 włącznie.
for number in range(1, 5):
print(number)
Trop do diagnozy
Porównaj zamierzony rezultat z typami, nazwami i kolejnością instrukcji. Wskaż pierwsze miejsce, w którym zachowanie odbiega od celu.
Zastosuj w nowej sytuacji
Wskazówka do rozpoczęcia
for pobiera elementy. range określa początek, wyłączoną granicę i krok.
Zacznij od przygotowania danych. Pierwsza instrukcja przykładowego rozwiązania:
total = 0
Rozwiązanie do samodzielnej kontroli
total = 0
for number in range(2, 11, 2):
total = total + number
print(total)
Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:
30
Porównaj dane wejściowe, wynik i powód użycia konstrukcji. Inna wersja kodu jest poprawna, jeśli realizuje te same wymagania.
Co zabierasz do kolejnego programu?
for pobiera elementy. range określa początek, wyłączoną granicę i krok.
Bez zaglądania do przykładu wyjaśnij własnymi słowami, jak główna konstrukcja prowadzi od danych do wyniku. Potem sprawdź wyjaśnienie, uruchamiając swój program.