Pętle

Pętle
Photo by Niloy T / Unsplash

Pętle służą do wykonywania powtarzalnych czynności w programie, czyli takich, które wymagałyby pisania tego samego kodu wielokrotnie tylko np. dla innych wartości zmiennych. Dzięki pętlom możemy sobie to uprościć i zautomatyzować.

Pętla for:

Wykona się tyle razy ile mamy jakichś elementów w sekwencji, np. tyle ile jest liter w wyrazie, tyle ile jest elementów w liście czy krotce itp.

Obiektami dla pętli są sekwencje i inne elementy przez które można przechodzić krok po kroku np. ciągi znaków, listy, krotki, range, słownik (iteracja po kluczach).

owoce = (jabłko, banan, ananas)

for owoc in owoce:
 print("najbardziej lubię: owoc")

# odpowiedź programu:
# najbardziej lubię: jałbko
# najbardziej lubię: banan
# najbardziej lubię: ananas

Czyli Python z krotki owoce przy każdym rozpoczęciu pętli bierze kolejny element zaczynając od "jabłko" i przypisuje go do zmiennej owoc, a potem wykonuje kod, który jest zapisany poniżej z wcięciem (wcięcie jest konieczne!!!).

Jeśli nie chcemy używać elementów z sekwencji w powtarzalnym bloku, a służą nam one jedynie, aby przemieszczać się po sekwencji to dobrą praktyką jest nazwać zmienną "_", żeby dać znać, że nie ma ona znaczenia innego niż umożliwienie przemieszczania się. Poniżej zależy nam na tym, aby po prostu coś wyświetlić dwa razy, same liczby nie mają znaczenia.

Jeśli korzystamy z funkcji range (tworzy ciąg liczb, bo którym możemy przechodzić w sekwencji) możemy też określić od którego do którego elementu ma się wykonywać pętla, ale możemy też zaznaczyć co ile elementów - wtedy w nawiasie wpisujemy wartości graniczne (start, stop) lub wartości graniczne i co ile ma być skok (start, stop, skok) - ważne! - wartość graniczna stop określa przed czym ma się zakończyć pętla, ta wartość nie będzie brana pod uwagę w kodzie.

for _ in range(2):
 print("Siema!")

# odpowiedź programu:
# Siema!
# Siema!


for i in range(2, 11, 2):
    print(i)
    
# odpowiedź programu:
# 2
# 4
# 6
# 8
# 10

Pętla while:

Program będzie wykonywał pętlę tak długo, aż będzie spełniony warunek - trzeba uważać, aby nie stworzyć pętli, która będzie się wykonywała w nieskończoność!!

liczba = 0

while liczba < 3:
 print(liczba)
 liczba += 1

 # odpowiedź programu:
 # 0
 # 1
 # 2

Gdyby w powyższym przykładzie pominąć ostatnią linijkę kodu, otrzymalibyśmy pętlę nieskończoną - w pierwszej pętli liczba = 0, czyli jest mniejsza od 3 (warunek spełniony) i w związku z tym program wyświetla liczbę, czyli 0, zaczyna się kolejna pętla, gdzie znowu liczba = 0 i warunek jest spełniony i tak w kółko.

Jeśli chcemy wcześniej zakończyć pętle można skorzystać z funkcji break:

x = 0
while True:
    print(x)
    x += 1
    if x == 5:
        break
print("Pętla zakończona")