Python обчислює логічні вирази як значення True
(правда) і False
(неправда). Точний запис цих констант, як правило, є джерелом помилок:
- Великі літери важливі:
True
— це логічна константа (правда), а true
— це назва змінної (яка може містити будь-яке значення).
"True"
і "False"
(тобто імена логічних констант, взяті в лапки) є звичайними рядками, а не константами зі спеціальним значенням.
Оператори порівняння
Базовим логічним виразом є порівняння двох виразів (наприклад, порівняння значення змінної та константи). Ми пишемо оператори більший/менший схожим із математикою (>
і <
) чином, «більше/менше або дорівнює» ми пишемо як >=
і <=
. Ми виконуємо перевірку рівності за допомогою двох знаків рівності (==
). Перевірку нерівності записуємо як !=
.
Приклади:
x = 42 # присвоєння змінній
x == 42 # перевірка рівності
x != 42 # перевірка нерівності
x > 42 # більше
x >= 42 # більше або дорівнює
Зверніть увагу на різницю між присвоєнням змінній (один знак рівності) і перевіркою на рівність (два знаки рівності).
Попередження: оператор is
Python також містить інші більш просунуті оператори. Одним з насправді підступних є оператор is
, який, здається, працює подібним чином як і ==
, і його використання, як правило, є джерелом помилок. Оператор is
є корисним інструментом для досвідчених програмістів, але новачкам настійно рекомендується уникати його.
Логічні сполучники
Ми можемо комбінувати основні логічні вирази за допомогою класичних логічних сполучників:
not
= заперечення
and
= і також (кон’юнкція) = результат є True
, якщо обидва аргументи є True
or
= або (диз’юнкція) = результат є True
, якщо хоча б один з аргументів є True
a = True # правда
b = False # неправда
c = a or b # або -> True
c = a and b # і також -> False
c = not a # заперечення -> False
Щоб відпрацювати значення сполучників, скористайтеся вправою Бінарний кросворд.
Цікавий факт: логічні сполучники в інших мовах
У деяких мовах програмування логічні сполучники записуються за допомогою символів &
, |
, !
. Ви також можете зустріти ці символи в Python (наприклад, в операціях із наборами), але вони не використовуються для логічних сполучень, вони записуються на Python англійськими назвами and
, or
, not
.
Пріоритети логічних сполучників
Пріоритети операторів розташовані у порядку спадання: not
, and
, or
(тобто, not
має найвищий пріоритет). Ми можемо використовувати круглі дужки, щоб змінити пріоритет або зробити вирази більш читабельними.
x = a or b and c # спочатку вирішується and, лише потім or
x = a or (b and c) # так само як у минулому прикладі, але читається простіше
x = (a or b) and c # тепер спочатку вирішується or
x = not a or b # спочатку not, лише потім or
x = not (a or b) # спочатку or, потім not