Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
SPIS TREŚCI |
Pętla (ang. loop) jest fragmentem kodu programu, który jest kolejno powtarzany. Komputer rozpoczyna wykonanie pierwszej instrukcji w pętli i kontynuuje kolejno, aż do wykonania ostatniej instrukcji w pętli. Następnie komputer wraca na początek pętli. Takie wykonanie instrukcji nosi nazwę obiegu:
Pętla może wykonywać dowolną liczbę takich obiegów. Dzięki pętlom komputer może wielokrotnie powtarzać wykonywanie określonych instrukcji.
Wykonywanie obiegów pętli zwykle uzależnione jest od spełnienia pewnego warunku. W przeciwnym razie komputer wykonywałby obiegi w nieskończoność. Pętla o takich własnościach nazywa się pętlą nieskończoną (ang. infinite loop lub endless loop). Pętlą warunkową (ang. conditional loop) jest pętla while. Składnia tej pętli jest następująca:
Python... while warunek: inst_1 inst_2 ... inst_n ... |
warunek : dowolne wyrażenie, które daje w wyniku wartość True/różną od zera lub False/równą zero.
inst_x : instrukcje wewnątrz obiegu pętli.
Działanie jest następujące:
Komputer najpierw oblicza warunek umieszczony za while. Jeśli warunek jest prawdziwy (wartość logiczna True lub dowolna wartość różna od zera), to komputer wykona obieg pętli (instrukcje z odstępem inst_1 ... inst_n), po czym wróci na początek pętli, komputer ponownie wyliczy wartość warunku i cykl się powtórzy. Jeśli warunek jest fałszywy (wartość logiczna False lub dowolna wartość równa zero), to komputer nie wykona obiegu, lecz przejdzie do pierwszej instrukcji po pętli while.
Oto przykład użycia pętli while:
Python# Suma liczb naturalnych maxs = int(input("max suma < ? ")) s = 0 # zerujemy sumę i = 1 # pierwsza liczba naturalna while s + i < maxs: s += i # suma i += 1 # następna liczba print("suma =", s) |
Python... for i in range(liczba): inst_1 inst_2 ... inst_n ... |
Funkcja range(liczba)
generuje ciąg liczb kolejno
range(5) → 0 1 2 3 4
range(3) → 0 1 2
range(10) → 0 1 2 3 4 5 6 7 8 9
Oto przykład:
Python# Liczby naturalne for i in range(100): print(i, end=" ") print() |
Parametr, który przekazujemy do funkcji
Jeśli do funkcji
range(2, 8) → 2 3 4 5 6 7
range(-3, 3) → -3 -2 -1 0 1 2
range(6,11) → 6 7 8 9 10
Uwaga, jeśli start jest mniejszy lub równy stop, to nie zostanie wygenerowany żaden ciąg i pętla nie wykona ani jednego obiegu. Pobaw się poniższym programem:
Python# Ciąg kolejnych liczb całkowitych start = int(input("start = ? ")) stop = int(input("stop = ? ")) print() for i in range(start, stop): print(i, end=" ") print() |
Funkcja
range(start, stop, krok):
range(2, 12, 2) → 2 4 8 10
range(5, 0, -1) → 5 4 3 2 1
range(-3, -10, -1) → -3 -4 -5 -6 -7 -8 -9
Uruchom poniższy program:
Python# Ciąg kolejnych liczb start = int(input("start = ? ")) stop = int(input("stop = ? ")) krok = int(input("krok = ? ")) print() for i in range(start, stop, krok): print(i, end=" ") print() |
range(stop) :
0 1 2 ... stop-1
range(start, stop)
:
start, start+1
... stop-1
range(start,
stop, krok)
:
start, start+krok,
... - ciąg kończy się tuż przed osiągnięciem lub przekroczeniem
stop
Czasem zdarza się, iż chcemy zakończyć wykonywanie obiegów pętli,
gdy pojawi się określona sytuacja. Na przykład utworzymy pętlę,
która będzie odczytywała kolejne imiona i zliczała je, aż do
momentu, gdy użytkownik wprowadzi pusty tekst
(tzn. naciśnie sam klawisz Enter – w takim przypadku
polecenie
Python# Zliczanie imion n = 0 # liczba imion while True: # pętla nieskończona imie = input("Imię = ") if imie == "": break n += 1 # zliczamy imiona print() print("Liczba imion =",n) |
Czasem zdarza się, iż chcemy zakończyć wykonywanie bieżącego obiegu pętli
i przejść do następnego, gdy wystąpi określona sytuacja. Poniższy program
wyświetla kolejne liczby całkowite od zera do zadanej granicy za wyjątkiem liczb będących
wielokrotnościami
Python# Liczby naturalne # bez wielokrotności 5 n = int(input("max = ")) c = 0 # licznik liczb s = 0 # suma liczb for i in range(n + 1): if i % 5 == 0: continue print(i, end=" ") c += 1 s += i print() print() print("Ilość =", c) print("Suma =", s) |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.