Instrukcję warunkową można zapisać przy pomocy następującego zdania: jeśli (warunek), to wykonaj (instrukcja).

W języku Python będzie to wyglądało następująco:

Linia 1. if warunek dwukropek. Linia 2. instrukcja.

Definiowanie warunków

Warunek może zwracać dwie wartości: prawda (True) lub fałsz (False).

Instrukcje znajdujące się po warunku zostaną wykonane tylko wtedy, kiedy warunek zwróci True.

Gdy w programie wykonujemy operację porównania, zwracane są wartości logiczne True albo False, np.:

Linia 1. x znak równości 5. Linia 3. print otwórz nawias okrągły x znak równości znak równości 5 zamknij nawias okrągły kratka zwróci True. Linia 4. print otwórz nawias okrągły x wykrzyknik znak równości 5 zamknij nawias okrągły kratka zwróci False. Linia 5. print otwórz nawias okrągły x znak równości znak równości 7 zamknij nawias okrągły kratka zwróci False. Linia 6. print otwórz nawias okrągły x zamknij nawias ostrokątny 2 zamknij nawias okrągły kratka zwróci True. Linia 7. print otwórz nawias okrągły x otwórz nawias ostrokątny 5 zamknij nawias okrągły kratka zwróci False. Linia 8. print otwórz nawias okrągły x otwórz nawias ostrokątny znak równości 5 zamknij nawias okrągły kratka zwróci True. Linia 9. print otwórz nawias okrągły x zamknij nawias ostrokątny znak równości 5 zamknij nawias okrągły kratka zwróci True.
Ważne!

Do przypisania zmiennej pewnej wartości używa się operatora =, natomiast do porównania ze sobą dwóch zmiennych służy podwójny znak równości ==. Operator „różne od” zapisujemy jako !=.

Przykładowa instrukcja warunkowa i jej wynik może wyglądać tak:

Linia 1. x znak równości 5. Linia 3. if x otwórz nawias ostrokątny 10 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Liczba jest mniejsza od 10 cudzysłów zamknij nawias okrągły.

Warunki złożone

Warunki możemy zagnieżdżać:

Linia 1. x znak równości 5. Linia 3. if x otwórz nawias ostrokątny 10 dwukropek. Linia 4. if x zamknij nawias ostrokątny 3 dwukropek. Linia 5. print otwórz nawias okrągły cudzysłów Liczba jest większa od 3 i mniejsza od 10 cudzysłów zamknij nawias okrągły.

Możemy uprościć kod, wykorzystując operatory logiczneoperator logicznyoperatory logiczne, na przykład:

Linia 1. x znak równości 5. Linia 3. if x zamknij nawias ostrokątny 3 and x otwórz nawias ostrokątny 10 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Liczba jest większa od 3 i mniejsza od 10 cudzysłów zamknij nawias okrągły.
Ważne!

Operatorem koniunkcji jest and, natomiast operatorem alternatywy jest or.

Instrukcja else oraz elif

Możemy w łatwy sposób zdefiniować instrukcję, która zostanie wykonana, kiedy warunek nie zostanie spełniony. Służy do tego operator else.

Linia 1. x znak równości 5. Linia 3. if x zamknij nawias ostrokątny 3 and x otwórz nawias ostrokątny 10 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Liczba jest większa od 3 i mniejsza od 10 cudzysłów zamknij nawias okrągły. Linia 5. else dwukropek. Linia 6. print otwórz nawias okrągły cudzysłów Liczba jest mniejsza od 3 lub równa 3 lub większa od 10 lub równa 10 cudzysłów zamknij nawias okrągły.

W języku Python istnieje również operator elif, który jest połączeniem operatorów elseif. Możemy za jego pomocą konstruować złożone instrukcje warunkowe, na przykład:

Linia 1. x znak równości 5. Linia 3. if x zamknij nawias ostrokątny 3 and x otwórz nawias ostrokątny 10 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Liczba jest większa od 3 i mniejsza od 10 cudzysłów zamknij nawias okrągły. Linia 5. elif x otwórz nawias ostrokątny 3 dwukropek. Linia 6. print otwórz nawias okrągły cudzysłów Liczba jest mniejsza od 3 cudzysłów zamknij nawias okrągły. Linia 7. elif x znak równości znak równości 3 dwukropek. Linia 8. print otwórz nawias okrągły cudzysłów Liczba jest równa 3 cudzysłów zamknij nawias okrągły. Linia 9. else dwukropek. Linia 10. print otwórz nawias okrągły cudzysłów Liczba jest równa 10 lub większa od 10 cudzysłów zamknij nawias okrągły.

Ostatni operator else definiuje instrukcję, która powinna zostać wykonana, jeśli żaden z warunków nie jest spełniony.

Przykładowy problem

Przyjrzyjmy się bardziej rozbudowanemu przykładowi. Wyobraźmy sobie taką sytuację: pewna fundacja przygotowuje informacje dla domów tymczasowych na temat tego, jak powinno się karmić koty. Po konsultacji z weterynarzem ustalono, że kot powinien zjadać około 60 kcal na każdy kilogram ciała. Jednak weterynarz wskazał, że sytuacja ma się inaczej w przypadku kotek, które są kotne lub karmią już młode.

Zapotrzebowanie kaloryczne kotek, które liczą ponad dwa lata oraz są w ciąży jest dwa razy większe. Podobnie kotek, które karmią jednego kociaka. Trzy razy większe zapotrzebowanie mają kotki, które karmią od dwóch kociąt. Te, które karmią od trzech do czterech, powinny zjadać cztery razy więcej kalorii. Pięciokrotność zapotrzebowania powinny zjadać zaś kotki, które karmią więcej niż pięć kociąt lub mają mniej niż dwa lata.

Korzystając z samej instrukcji warunkowej, musielibyśmy stworzyć szereg warunków:

Linia 1. kcal znak równości waga podkreślnik kg asterysk 60. Linia 3. if wiek podkreślnik lata zamknij nawias ostrokątny 2 dwukropek. Linia 4. if ciaza znak równości znak równości true dwukropek. Linia 5. kcal asterysk znak równości 2. Linia 7. if ciaza znak równości znak równości false dwukropek. Linia 8. if mlode znak równości znak równości 1 dwukropek. Linia 9. kcal asterysk znak równości 2. Linia 11. if mlode znak równości znak równości 2 dwukropek. Linia 12. kcal asterysk znak równości 3. Linia 14. if mlode zamknij nawias ostrokątny 2. Linia 15. if mlode otwórz nawias ostrokątny 5 dwukropek. Linia 16. kcal asterysk znak równości 4. Linia 17. if mlode zamknij nawias ostrokątny znak równości 5 dwukropek. Linia 18. kcal asterysk znak równości 5. Linia 20. if wiek podkreślnik lata znak równości otwórz nawias ostrokątny 2 dwukropek. Linia 21. kcal asterysk znak równości 5.

Wykorzystując operatory logiczne, możemy znacznie uprościć kod obliczający, ile powinna zjeść kotka:

Linia 1. kcal znak równości waga podkreślnik kg asterysk 60. Linia 3. if wiek podkreślnik lata zamknij nawias ostrokątny 2 and ciaza znak równości znak równości true or mlode znak równości znak równości 1 dwukropek. Linia 4. kcal asterysk znak równości 2. Linia 6. if wiek podkreślnik lata zamknij nawias ostrokątny 2 and mlode znak równości znak równości 2 dwukropek. Linia 7. kcal asterysk znak równości 3. Linia 9. if wiek podkreślnik lata zamknij nawias ostrokątny 2 and mlode zamknij nawias ostrokątny 2 and mlode otwórz nawias ostrokątny 5 dwukropek. Linia 10. kcal asterysk znak równości 4. Linia 12. if mlode zamknij nawias ostrokątny znak równości 5 or wiek podkreślnik lata otwórz nawias ostrokątny 2 dwukropek. Linia 13. kcal asterysk znak równości 5.

Wykorzystując instrukcje else oraz elif, otrzymamy taki kod:

Linia 1. kcal znak równości waga podkreślnik kg asterysk 60. Linia 3. if wiek podkreślnik lata zamknij nawias ostrokątny 2 and ciaza znak równości znak równości true or mlode znak równości znak równości 1 dwukropek. Linia 4. kcal asterysk znak równości 2. Linia 5. elif wiek podkreślnik lata zamknij nawias ostrokątny 2 and mlode znak równości znak równości 2 dwukropek. Linia 6. kcal asterysk znak równości 3. Linia 7. elif wiek podkreślnik lata zamknij nawias ostrokątny 2 and mlode zamknij nawias ostrokątny 2 and mlode otwórz nawias ostrokątny 5 dwukropek. Linia 8. kcal asterysk znak równości 4. Linia 9. else dwukropek. Linia 10. kcal asterysk znak równości 5.

Słownik

operator logiczny
operator logiczny

operator pozwalający na wykonywanie podstawowych operacji algebry Boole'a takich jak koniunkcja, alternatywa czy negacja