Рубрики
Без рубрики

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

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

Автор оригинала: Pankaj Kumar.

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

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

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

Логично и оператор а также
Логично или оператор или же
Логично не оператор нет

Python Logical и оператор

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

x = 10
y = 20

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

Выход : И х, а у y - положительные числа

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

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

В Python каждая переменная или объект имеет логическое значение. Мы объяснили это более подробно в функции Python Bool ().

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

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

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

class Data:
    id = 0

    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 Logical или оператор

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

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 __ () называется только один раз, и поскольку он оценивается до Правда Дальнейшие выражения не оцениваются.

Давайте запустим еще один пример, когда оба объекта Data Boolean Value вернется Ложь Отказ

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

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

Python Logical или оператор

Python Logical не оператор

Это очень простой оператор, который работает с одним логическим значением. Если логическое значение это Правда Тогда не оператор вернет Ложь и наоборот.

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

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

Выход: 37 не делится на 3 или 4

Python Logical не оператор

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

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

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

def my_bool(data):
    print('Data bool method called, id =', data.id)
    return True if data.id > 0 else False


Data.__bool__ = my_bool

d1 = Data(10)
d2 = Data(-20)
d3 = Data(20)

# evaluated from left to right, confirmed from the __bool__() print statement
if d1 and d2 or d3:
    print('At least one of them have a positive id.')

Выход:

Data bool method called, id = 10
Data bool method called, id = -20
Data bool method called, id = 20
At least one of them have a positive id.

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

Логические операторы работают с любым пользовательским объектом?

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

Резюме

Логические операторы Python позволяют выполнять логические операции. Мы подробно рассмотрели логические операторы, как их выполнение оптимизировано, чтобы занять наименьшее количество времени. Мы также подтвердили, что выполнение оператора выполняется слева на правую сторону.