Логический оператор not python

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

Логические операторы в Python позволяют нам выполнять логические операции AND, OR, и NOT между логическими значениями. В этой статье мы более подробно рассмотрим выполнение логического оператора.

В Python есть три логических оператора:

and Логический оператор AND flag = True и True = True
or Логический оператор OR flag = False или True = True
not Логический оператор NOT flag = not (False) = True

Логический оператор AND в Python

Вот простой пример логического оператора and.

x = 10 y = 20 if x > 0 and y > 0: print('Both x and y are positive numbers')

Вывод: и x, и y – положительные числа.

Перед выполнением логической операции выражения оцениваются. Таким образом, приведенное выше условие if аналогично приведенному ниже:

if (x > 0) and (y > 0): print('Both x and y are positive numbers')

В Python каждая переменная или объект имеет логическое значение.

if x and y: print('Both x and y have boolean value as True')

Вывод: И x, и y имеют логическое значение True, потому что функция len() ‘x’ и ‘y’ вернет 2, т.е.> 0.

Давайте подтвердим приведенное выше утверждение, определив настраиваемый объект. Python использует функцию __bool __() для получения логического значения объекта.

class Data: def __init__(self, i): self.id = i def __bool__(self): print('Data bool method called') return True if self.id > 0 else False d1 = Data(-10) d2 = Data(10) if d1 and d2: print('Both d1 and d2 ids are positive') else: print('Both d1 and d2 ids are not positive')
Data bool method called At least one of d1 and d2 ids is negative

Обратите внимание, что функция __bool __() вызывается только один раз, что подтверждается выводом оператора печати.

На диаграмме ниже изображена логическая блок-схема и схема работы.

Логическая блок-схема в Python

Логический оператор OR

Давайте посмотрим на простой пример логического оператора OR.

x = 10 y = 20 if x > 0 or y > 0: print('At least one of x and y is positive number')

Выход: по крайней мере одно из x и y является положительным числом.

Давайте подтвердим это простым фрагментом кода. Мы будем повторно использовать класс данных, определенный ранее.

d1 = Data(10) d2 = Data(20) # The expressions are evaluated until it's required if d1 or d2: print('At least one of d1 and d2 id is a positive number') else: print('Both d1 and d2 id are negative')
Data bool method called At least one of d1 and d2 id is a positive number

Обратите внимание, что метод __bool __() вызывается только один раз и, поскольку он оценивается как True, дальнейшие выражения не оцениваются.

Давайте запустим еще один пример, в котором оба логических значения объекта данных возвращают False.

d1 = Data(-10) d2 = Data(-20) if d1 or d2: print('At least one of d1 and d2 id is a positive number') else: print('Both d1 and d2 id are negative')
Data bool method called Data bool method called Both d1 and d2 id are negative

Наконец, на изображении ниже изображена блок-схема логического оператора или оператора.

Логический оператор или оператор

Оператор NOT

Это очень простой оператор, работающий с одним логическим значением. Если логическое значение равно True, тогда оператор not вернет False и наоборот.

Давайте посмотрим на простой пример оператора «NOT».

a = 37 if not (a % 3 == 0 or a % 4 == 0): print('37 is not divisible by either 3 or 4')

Результат: 37 не делится ни на 3, ни на 4.

Логический оператор Not в Python

Операторы оцениваются слева направо

Давайте посмотрим на пример, где у нас есть несколько логических операторов. Мы не смешиваем разные типы операторов в Python, поэтому приоритет операторов не будет очевиден и будет легче объяснить результат.

Мы также переопределим функцию __bool __() для вывода значения «id».

def my_bool(data): print('Data bool method called, At least one of them have a positive id.')
Data bool method called, bool method called, bool method called, least one of them have a positive id.

Обратите внимание, что логическое значение сначала вычисляется для d1, тем самым подтверждая, что выполнение происходит слева направо.

Работают ли с любым настраиваемым объектом?

В Python каждый объект имеет логическое значение. Таким образом, логические операторы будут работать и с любыми настраиваемыми объектами. Однако мы можем реализовать функцию __bool __(), чтобы определить наши собственные правила для логического значения объекта.

Источник

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

Операторы Python — это слова, которые говорят интерпретатору Python выполнять определенные задачи. Логические операторы используются для объединения нескольких логических операторов.

В Python есть три логических оператора.

3 Логических Оператора Python

Блок-схема

На изображении ниже изображена блок-схема логических операторов.

Блок-Схема Логических Операторов

Логический оператор И в Python

Утверждение возвращается, чтобы быть истинным, если оба утверждения / условия верны.

Пример:

a=20 b=10 if a > 0 and b > 0 print("Both a and b are positive numbers.")

Вывод: и a, и b — положительные числа.

Логический оператор ИЛИ в Python

Утверждение возвращается истинным, когда любое из утверждений / условий истинно.

Пример:

a=20 b= -10 if a > 0 or b > 0 print("True")

Логический оператор НЕ в Python

Этот оператор работает с одним значением. Он меняет результат на противоположный, т. е. Если утверждение истинно, оператор not превратит утверждение в ложное и наоборот.

Пример:

В приведенном выше примере условие a % 4 or a > 0 оценивается как True. Но, поскольку мы использовали оператор not, он меняет результат, т.е. дает результат как False.

Источник

Читайте также:  Php сортировка массива дат
Оцените статью