Lekcje modułu (3/4)
Warunki: if, elif, else
Instrukcje warunkowe pozwalają na uruchamianie różnego kodu w zależności od
wartości wyrażenia logicznego. W Pythonie zapisuje się je za pomocą if, elif
(skrót od "else if") i else.
Podstawowa forma
eta = 18
if eta >= 18:
messaggio = "maggiorenne"
else:
messaggio = "minorenne"Zwróć uwagę:
- po warunku zawsze występuje dwukropek
:; - blok "wewnątrz" instrukcji if jest identyfikowany przez wcięcie (4 spacje);
- nie potrzebujesz nawiasów wokół warunku (chociaż są one dozwolone).
Więcej gałęzi dzięki elif
voto = 7
if voto >= 9:
giudizio = "ottimo"
elif voto >= 7:
giudizio = "buono"
elif voto >= 6:
giudizio = "sufficiente"
else:
giudizio = "insufficiente"Gałęzie elif są oceniane w kolejności ich zapisu i zatrzymują się na
pierwszej, która okaże się prawdziwa.
Wyrażenie warunkowe (ternary)
W prostych przypadkach możesz zapisać wszystko w jednej linii:
eta = 20
messaggio = "maggiorenne" if eta >= 18 else "minorenne"Czyta się to naturalnie po angielsku: "maggiorenne if eta >= 18 else minorenne".
Wartości "Truthy" / "falsy"
Warunek nie musi być porównaniem: jako warunek można użyć dowolnej wartości.
Za fałszywe uważa się: False, None, 0, "", [], {}.
Wszystko inne jest prawdziwe.
nome = "Ada"
if nome:
saluto = f"Ciao {nome}!"
else:
saluto = "Ciao sconosciuto!"Wyrażenia warunkowe (operator trójargumentowy)
Python obsługuje kompaktową, jednoelementową konstrukcję if-else, która działa jako operator trójargumentowy znany z innych języków:
result = "Even" if n % 2 == 0 else "Odd"Dzięki temu Twój kod pozostaje zwięzły, gdy po prostu musisz przypisać wartość na podstawie warunku.
Spróbuj sam
Mając dane `number = 15`, przypisz do `sign` ciąg znaków 'positivo', jeśli liczba jest > 0, 'zero', jeśli jest równa 0, 'negativo' w przeciwnym razie. Oceń `sign`.
Pokaż wskazówkę
Trzy gałęzie: > 0, == 0, else.
Rozwiązanie dostępne po 3 próbach
Ćwiczenie powtórzeniowe
Mając dane `age = 20`, przypisz do `category` ciąg znaków 'maggiorenne' lub 'minorenne' za pomocą wyrażenia trójargumentowego (if/else w jednej linii).
Pokaż wskazówkę
Składnia: value_if_true if condition else value_if_false
Rozwiązanie dostępne po 3 próbach
Dodatkowe wyzwanie
Napisz strukturę warunkową, która sprawdza, czy zmienna `x` (zainicjowana na `-5`) jest większa od 0, mniejsza od 0 lub równa 0. Przypisz odpowiednio ciąg znaków `'positive'`, `'negative'` lub `'zero'` do `sign`. Na koniec oceń `sign`.
Pokaż wskazówkę
Użyj if x > 0:, elif x < 0:, i else: aby obsłużyć te trzy przypadki.
Rozwiązanie dostępne po 3 próbach