Programowanie w Pythonie (4): Instrukcje warunkowe

Do tej pory nasze programy były jednotorowe. Mogły dodać do siebie dwie liczby i wypisać wynik działania.  Instrukcje warunkowe będą nam dawały możliwość wybrania rezultatów w zależności od tego, co zajdzie w kodzie podczas przetwarzania programu. Oprócz pętli, które poznamy już niebawem – są one niezbędnym elementem każdego języka programistycznego, a ich zrozumienie teraz będzie kluczowe w dalszej nauce.

Porównywanie

Zanim przejdziemy do instrukcji warunkowym, najpierw trochę o porównywaniu. Zobacz jakie wyniki dadzą następujące linijki wpisane w interpreterze.

Przyrównanie:

1
2
7 == 7
7 == 8

Nierówność:

1
2
7 != 2
5 != 5

Mniej niż:

1
2
2 < 5
8 < 6

Mniejsze lub równe niż:

1
2
10 <= 100
100 <= 10

Ćwiczenie

Podaj wartości logiczne poniższych porównań, a następnie sprawdź je w interpreterze Pythona:

1
2
3
4
(20 - 10) > 15
(10 + 17) == 3**16
1**2 <= -1 40 * 4 >= -4
100 != 10**2

Odrobina logiki – AND, OR i NOT

AND

Operator and zwraca wartość True, gdy oba postawione warunki są prawdziwe. Jeśli jeden z nich nie jest spełniony, zostanie zwrócona wartość False.

Ćwiczenie: Jakie wartości logiczne zostaną przypisane do zmiennych?

1
2
3
4
5
bool_one = False and False
bool_two = -(-(-(-(2)))) = -2 and 4 >= 16**0.5
bool_three = 19 % 4 != 300 / 10 / 10 and False
bool_four = -(1 ** 2) < 2 ** 0 and 10 % 10 <= 20 - 10 * 2
bool_five = True and True

OR

Operator or zwraca wartość True, gdy chociaż jeden warunek będzie prawdziwym. Jeśli obydwa nie będą spełnione, zostanie zwrócona wartość False.

Ćwiczenie: Jakie wartości logiczne zostaną przypisane do zmiennych?

1
2
3
4
5
bool_one = 2 ** 3 == 108 % 100 or 'Ser' == 'Gouda'
bool_two = True or False
bool_three = 100 ** 0.5 >= 50 or False
bool_four = True or True
bool_five = 1 ** 100 == 100 ** 1 or 3 * 2 * 1 != 3 + 2 + 1

NOT

Operator not zwraca wartość True dla warunków fałszywych i False dla warunków prawdziwych.

Ćwiczenie: Jakie wartości logiczne zostaną przypisane do zmiennych?

1
2
3
4
5
bool_one = not True
bool_two = not 3 ** 4 < 4 ** 3
bool_three = not 10 % 3 <= 10 % 2
bool_four = not 3 ** 2 + 4 ** 2 != 5 ** 2
bool_five = not not False

Kolejność operatorów

Wartości boolean nie są odczytywane od lewej do prawej. Tak samo jak istnieje kolejność wykonywania działań, istnieje też kolejność wykonywania operacji logicznych:

  • not jest wykonywany w pierwszej kolejności,
  • and jest wykonywany jako następny,
  • or wykonuje się jako ostatni.

Przykład:

1
True and not False and False

zwróci wartość True.

Ćwiczenie: Jakie wartości logiczne zostaną przypisane do zmiennych? Odpowiedz samodzielnie, a następnie sprawdź odpowiedź w interpreterze Pythona.

1
2
3
4
5
bool_one = False or not True and True
bool_two = False and not True or True
bool_three = True and not (False or False)
bool_four = not not True or False and not True
bool_five = False or not (True and True)

Składnia instrukcji warunkowej

Instrukcja warunkowa if wykonuje kod programu jeśli postawiony w niej warunek ma wartość True.

Przykład:

1
2
if 2 < 3:
  print("Dwa jest mniejsze niż trzy")

Zwróć uwagę na wcięcie przed funkcją print(). Na potrzeby tego kursu będziemy używać czterech spacji. Lepiej trzymać się jednego rodzaju odstępów. Python inaczej będzie odczytywał wcięcia dwuspacjowe od czterospacjowych. Jeśli będzie różnica w kolejnych linijkach danej instrukcji warunkowej, Python wskaże IndentationError.

Else z afrykańskiego buszu

Instrukcja else dopełnia if w ten sposób, że jeśli warunek postawiony w instrukcji warunkowej będzie fałszywy, to skrypt wykona kod zawarty w else.

Przykład:

1
2
3
4
if 2 < 1:
  print("Nie zobaczysz mnie")
else:
  print("A mnie tak")

Elif jej brat

Instrukcja elif to skrót od else if. Działa wówczas, gdy pierwotna instrukcja if zwróci Falseelif sprawdza, czy wyrażenie w nim postawione jest prawdziwe i na tej podstawie wykonuje lub nie kawałek kodu w nim zawarty.

Przykład:

1
2
3
4
5
6
if liczba < 0:
  print("Ujemna")
elif liczba > 0:
  print("Dodatnia")
else:
  print("Zero")

Podsumowanie

Instrukcja warunkowa nie jest skomplikowana, a jak sami za niedługo zobaczymy, będzie dawała szerokie spektrum możliwości w tworzeniu naszych programów. Zachęcam do solidnego przetestowania możliwości ifa i sposobów porównywania wartości w Pythonie.

Nauczyciel matematyki i przedmiotów informatycznych w Dwujęzycznych Szkołach im. Władysława Kopalińskiego w Bielsku-Białej. Autor wielu publikacji poświęconych nauce podstaw programowania, w tym „Scratch. Nauka programowania przez zabawę”, wydanej drukiem przez wydawnictwo Komputer Świat. Entuzjasta wykorzystywania nowych nowoczesnych narzędzi w czasie lekcji. Prywatnie miłośnik koszykówki i aktywnego wykorzystywania czasu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.