Найти в Дзене
Дойти до IT

Python - Логические операторы

and - Логическое умножение or - Логическое сложение not - Логическое отрицание Очень часто бывает такое, что внутри условного оператора if нужно использовать несколько условий одновременно: x = int(input())
y = int(input()) if 10 <= x <= 20 and 20 <= y <= 30:
print('Число x в диапазоне от 10 до 20 включительно')
print('Число y в диапазоне от 20 до 30 включительно') В данном примере рассматриваются два условия, которые соединены с помощью оператора and (логическое умножение). Этот оператор требует, чтобы оба условия были истинными для того, чтобы результат всего выражения был истинным. Для лучшего понимания работы оператора and, полезно представить, что каждое условие может иметь только два возможных значения: True (истина) или False (ложь). В контексте программирования, True можно представить как 1, а False — как 0. Когда мы применяем оператор and к двум условиям, он выполняет операцию логического умножения. Если хотя бы одно из условий ложно (то есть равно 0), то результат все

Логические операторы and, or и not

and - Логическое умножение

or - Логическое сложение

not - Логическое отрицание

Очень часто бывает такое, что внутри условного оператора if нужно использовать несколько условий одновременно:

x = int(input())
y = int(input())
if 10 <= x <= 20 and 20 <= y <= 30:
print('Число x в диапазоне от 10 до 20 включительно')
print('Число y в диапазоне от 20 до 30 включительно')

В данном примере рассматриваются два условия, которые соединены с помощью оператора and (логическое умножение). Этот оператор требует, чтобы оба условия были истинными для того, чтобы результат всего выражения был истинным.

Для лучшего понимания работы оператора and, полезно представить, что каждое условие может иметь только два возможных значения: True (истина) или False (ложь). В контексте программирования, True можно представить как 1, а False — как 0.

Когда мы применяем оператор and к двум условиям, он выполняет операцию логического умножения. Если хотя бы одно из условий ложно (то есть равно 0), то результат всего выражения будет ложным (0). Если оба условия истинны (равны 1), то результатом будет истина (1).

Давайте рассмотрим пример с использованием переменных x и y. Предположим, у нас есть следующие условия:

  • Условие 1: 10 <= x <= 20
  • Условие 2: 20 <= y <= 30

Эти условия связаны оператором and. Теперь давайте подставим значения x = 15 и y = 35.

Первое условие (10 <= 15 <= 20) даст нам True, так как значение x находится в заданном диапазоне. Второе условие (20 <= 35 <= 30) будет False, поскольку значение y не соответствует диапазону.

Теперь применим логический оператор and: True and False даст нам False. Это означает, что если хотя бы одно из наших условий не выполняется, то весь блок кода, связанный с этим выражением, не будет выполнен.

Если мы изменим значения переменных на x = 15 и y = 25, тогда оба условия будут истинными (True and True), что в результате даст нам истину (True). Таким образом, выполнение блока кода будет зависеть от того, выполняются ли оба заданных условия.

Абсолютно по такому же принципу работает оператор or, однако он даёт результат True только в случае если хотя бы одно условие истино. Остальные могут быть ложными.

x = int(input())
y = int(input())
if 10 <= x <= 20 or 20 <= y <= 30:
print('Какое-то из значений в диапазоне')

Но оператор not не занимается вычитанием. Он просто переворачивает результат. Если мы в ответе получили True, подставив not (not True), мы получим False:

x = int(input())
y = int(input())
if not 10 <= x <= 20 and not 20 <= y <= 30:
print('Число x НЕ в диапазоне от 10 до 20 включительно')
print('Число y НЕ в диапазоне от 20 до 30 включительно')