Перейти до змісту

Логічні вирази

Як і інші типи даних bool має свій набір операцій з даними цього типу.

Оператор not (логічне "заперечення") змінює логічне значення на протилежне:

>>> not True
False
>>> not not False
False
>>>

Зауважте: оператор not працює лише з одним операндом, подібно як оператор зміни знаку для чисел. Такі оператори називають "унарними".

Оператор and (логічне "І", логічне множення) повертає True тоді і лише тоді, коли обидва його операнди мають значення True:

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>>

У not пріорітет вище ніж у and:

>>> True and not True
False
>>>

Оператор or (логічне "АБО", логічне додавання) повертає False тоді і лише тоді, коли обидва його операнди мають значення False:

>>> True or False
True
>>> True or True
True
>>> False or False
False
>>>

У and пріорітет вище ніж у and.

>>> not False or True and False
True
>>>

Вищенаведені операції проводились над даними типу bool і давали значення теж типу bool.

Порівняння значень

Дані різних типів даних можна порівнювати між собою.

операція результат
a == b True якщо значення a дорівнює значенню b, False в інших випадках
a != b True якщо значення a не дорівнює значенню b, False в інших випадках
a > b True якщо значення a більше ніж значенню b, False в інших випадках
a >= b True якщо значення a більше ніж значенню b або дорівнює йому, False в інших випадках
a < b True якщо значення a меньше ніж значенню b, False в інших випадках
a <= b True якщо значення a меньше ніж значенню b або дорівнює йому, False в інших випадках

Приклади:

>>> 5 == 5
True
>>> 5 >= 5
True
>>> 5 != 'five'
True
>>> s = 'Hi'
>>> s == 'Hi'
True
>>> s + '!' == 'Hi'
False
>>>

Зауважте: ми проводили порівняння значень різних типів. Але операції порівняння завжди повертають значення типу bool.

Входження рядка в інший рядок

За допомогою логічного оператора in можна перевірити чи входить один символьний рядок в інший:

>>> s = 'Hello Jane'
>>> 'H' in s
True
>>> 'Jane' in s
True
>>> 'Jane!' in s + '!'
True
>>> '' in s
True
>>> 'John' in s
False
>>>

А оператор not in повертає True якщо один рядок не входить в інший:

>>> 'John' not in "Hello Jane"
True
>>>

Зауважте: not in — це один оператор.