Логічні вирази
Як і інші типи даних 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
— це один оператор.