W programowaniu oprócz instrukcji liniowych i warunkowych stosujemy algorytmy iteracyjne, czyli takie, w których pewne czynności powtarzają się wiele razy. W języku Python służą do tego przede wszystkim dwie instrukcje powtarzania: while oraz for.
whilePętla while wykonuje instrukcje tak długo, jak długo spełniony jest warunek logiczny.
x = 1
while x <= 5:
print(x)
x += 1
Ten program wypisze liczby od 1 do 5. Pętla while jest szczególnie przydatna wtedy, gdy nie wiemy z góry, ile razy program ma wykonać dane instrukcje.
forPętla for służy do wykonywania instrukcji określoną liczbę razy.
for i in range(5):
print(i)
Wynikiem będzie wypisanie liczb od 0 do 4.
range()Funkcja range() generuje ciągi liczb całkowitych i bardzo często współpracuje z pętlą for.
range(5) # 0, 1, 2, 3, 4
range(1, 6) # 1, 2, 3, 4, 5
range(2, 11, 2) # 2, 4, 6, 8, 10
n = int(input("Podaj n: "))
suma = 0
skladnik = 2
for i in range(n):
suma += skladnik
skladnik += 2
print("Suma:", suma)
Program oblicza sumę n kolejnych liczb parzystych, zaczynając od 2.
maks = 0
liczba = float(input("Podaj liczbę (0 kończy): "))
while liczba != 0:
if liczba > maks:
maks = liczba
liczba = float(input("Podaj liczbę: "))
print("Największa:", maks)
Program pobiera liczby od użytkownika aż do wpisania 0. Następnie wypisuje największą z nich.
W konkursie skoków chcemy odrzucić jedną najmniejszą i jedną największą notę, a następnie obliczyć sumę pozostałych.
print("Wprowadź noty za skok:")
nota = float(input())
mini = nota
maks = nota
suma = nota
for i in range(4):
nota = float(input())
suma += nota
if nota < mini:
mini = nota
if nota > maks:
maks = nota
suma = suma - mini - maks
print("Noty skrajne:", mini, "i", maks)
print("Łączna nota:", suma)
Najpierw wczytujemy pierwszą notę i traktujemy ją jednocześnie jako minimum, maksimum i początkową sumę. Następnie w pętli pobieramy kolejne wartości, aktualizujemy sumę oraz sprawdzamy, czy trzeba zmienić minimum lub maksimum.
Która pętla jest najlepsza, gdy nie wiemy z góry, ile razy mają zostać wykonane instrukcje?
range()Jaką liczbę wypisze program jako ostatnią?
for i in range(2, 11, 2):
print(i)
Co oblicza ten program?
n = 3
suma = 0
skladnik = 2
for i in range(n):
suma += skladnik
skladnik += 2
print(suma)
Uzupełnij warunek tak, aby pętla działała aż do wpisania zera:
while liczba ____ 0:
print(liczba)
liczba = int(input())
Napisz fragment pętli for, który wypisze liczby od 1 do 5. Nie musisz pisać całego programu – wystarczy sama pętla.
while stosujemy wtedy, gdy liczba powtórzeń nie jest z góry znana,for stosujemy wtedy, gdy chcemy powtórzyć coś określoną liczbę razy,range() pomaga generować liczby do pracy w pętli for,