Warunki i pętle w Pythonie
Dotąd program wykonywał się liniowo, linia po linii. Prawdziwa magia zaczyna się, gdy kod potrafi podejmować decyzje i powtarzać czynności tysiące razy — i właśnie to dają warunki oraz pętle.
if, elif, else) i jak powtarzać
czynności pętlami for oraz while. Na koniec napiszesz
klasyczny program FizzBuzz i wykonasz ćwiczenie z tabliczką mnożenia.
Instrukcja warunkowa if
Warunek pozwala wykonać fragment kodu tylko wtedy, gdy coś jest prawdą. Składnia ma dwie ważne cechy: dwukropek na końcu linii z warunkiem i wcięcie (4 spacje) w linii wykonywanej:
wiek = 20
if wiek >= 18:
print("Jesteś pełnoletni")
Operator >= znaczy „większe lub równe". Do porównań służą też:
== (równe), != (różne), <, >,
<=. Pamiętaj: == porównuje, a pojedyncze
= przypisuje — to jeden z najczęstszych błędów początkujących.
Wynik porównania to wartość typu bool: True albo
False.
elif i else — więcej ścieżek
Gdy możliwości jest więcej niż dwie, dokładasz kolejne warunki
słowem elif, a gałąź else łapie wszystkie
pozostałe przypadki:
temperatura = 8
if temperatura < 0:
print("Mróz! Ubierz się ciepło.")
elif temperatura < 15:
print("Chłodno — przydaje się kurtka.")
else:
print("Ciepło. Można iść w koszulce.")
Python sprawdza warunki od góry i wykonuje pierwszą gałąź, której warunek jest spełniony — dla temperatury 8 będzie to „Chłodno". Dalszych warunków już nie sprawdza.
Warunek możesz budować też wprost z wartości typu bool z lekcji 1:
zapis if czy_pada: jest poprawny i czytelny. Do łączenia kilku
warunków służą słowa and (oba muszą być prawdziwe)
oraz or (wystarczy, że prawdziwy jest jeden).
Pętla for — powtarzanie po znanym zakresie
Pętla for idealnie nadaje się, gdy z góry wiadomo, ile razy
coś ma się powtórzyć. Funkcja range() generuje ciąg liczb:
for i in range(5):
print("Powtórzenie numer", i)
Uwaga: range(5) daje liczby od 0 do 4 — pięć wartości, ale
liczonych od zera. Zapis range(1, 6) da liczby od 1 do 5.
Zmienną pętli (tutaj i) możesz wykorzystywać w obliczeniach:
suma = 0
for liczba in range(1, 11):
suma = suma + liczba
print("Suma liczb od 1 do 10:", suma) # 55
W każdym obrocie pętli do zmiennej suma dokładana jest kolejna
liczba — dziesięć linii zastępuje nam trzy wiersze kodu.
Pętla while — powtarzanie „dopóki"
Pętla while działa inaczej: powtarza swój kod tak długo,
jak długo warunek jest prawdziwy:
odliczanie = 3
while odliczanie > 0:
print(odliczanie)
odliczanie = odliczanie - 1
print("Start!")
Kluczowa jest linia zmniejszająca licznik — gdyby jej zabrakło, warunek nigdy nie przestałby być prawdziwy i pętla kręciłaby się w nieskończoność. To częsty błąd; jeśli program „zawiesi się" w pętli, w interpreterze online wystarczy przerwać wykonywanie kodu.
Kiedy którą pętlę wybrać? Sięgnij po for, gdy znasz liczbę
powtórzeń albo chcesz przejść po kolejnych elementach — liczbach
z range() czy znakach tekstu. Wybierz while, gdy
liczba powtórzeń zależy od sytuacji — na przykład czekasz, aż użytkownik
wpisze poprawne hasło albo odliczasz do zera.
Przykład łączony: FizzBuzz
FizzBuzz to klasyczne zadanie, które łączy oba narzędzia z tej lekcji.
Program wypisuje liczby od 1 do 15, ale: podzielne przez 3 zastępuje słowem
„Fizz", podzielne przez 5 — „Buzz", a podzielne przez 3 i 5 jednocześnie —
„FizzBuzz". Do sprawdzania podzielności przyda się operator %,
czyli reszta z dzielenia:
for liczba in range(1, 16):
if liczba % 3 == 0 and liczba % 5 == 0:
print("FizzBuzz")
elif liczba % 3 == 0:
print("Fizz")
elif liczba % 5 == 0:
print("Buzz")
else:
print(liczba)
Kolejność warunków ma znaczenie: sprawdzenie „i 3, i 5" musi być pierwsze,
bo liczba 15 spełnia też każdy z warunków osobno — a Python wykonuje tylko
pierwszą pasującą gałąź. Słowo and łączy dwa warunki: oba
muszą być prawdziwe.
- Utwórz zmienną
liczbao wartości 7. - Pętlą
for i in range(1, 11)wypisz wiersze w formie „7 x 3 = 21". - Zmień wartość zmiennej i sprawdź, że cała tabliczka aktualizuje się sama.
- Dla chętnych: zapisz tę samą pętlę przy użyciu
while.
Rozwiązanie wzorcowe:
liczba = 7
for i in range(1, 11):
print(liczba, "x", i, "=", liczba * i)
Najważniejsze pojęcia z tej lekcji
if, elif i
else pozwalają programowi podejmować decyzje, a pętle
for i while — powtarzać kod dowolną liczbę razy.
O wcięciach decyduje wszystko: to one mówią Pythonowi, które linie należą
do warunku lub pętli. W lekcji 3 nauczysz się porządkować kod we własne
funkcje i złożysz pierwszy kompletny program.