Пропустить до содержимого

Как использовать Python без усилий?

[

Использование логического оператора “not” в Python

Python оператор not позволяет инвертировать значение истины логических выражений и объектов. Вы можете использовать этот оператор в логических контекстах, таких как операторы if и while. Он также работает в не-логических контекстах, что позволяет инвертировать значение истины ваших переменных.

Эффективное использование оператора not поможет вам написать точные отрицательные логические выражения для управления выполнением программ.

В этом руководстве вы узнаете:

  • Как работает оператор not в Python
  • Как использовать оператор not в логических и не-логических контекстах
  • Как использовать функцию operator.not_() для выполнения логической инверсии
  • Как и когда избегать ненужной отрицательной логики в вашем коде

Работа с логической логикой в Python

Джордж Буль составил так называемую логику Буля, которая основывается на значениях истина и ложь. Он также определяет набор логических операций: AND, OR и NOT. Эти значения и операторы Буля полезны при программировании, потому что они помогают принять решение о дальнейших действиях в ваших программах.

Python

>>> issubclass(bool, int)
True
>>> help(bool)
Help on class bool in module builtins:
class bool(int)
bool(x) -> bool
...

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

Python

>>> type(True)
<class 'bool'>
>>> type(False)
<class 'bool'>
>>> isinstance(True, int)
True
>>> isinstance(False, int)
True
>>> int(True)
1
>>> int(False)
0

Python

>>> True + True
2

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

Начало работы с оператором not в Python

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

Вот несколько примеров использования оператора not в логических контекстах.

Оператор not в операторах if

Оператор not позволяет вам легко проверить, является ли выражение нулевым, ложным или неопределенным. В следующем примере оператор not используется в операторе if для проверки, является ли переменная x равной 0:

Python

x = 0
if not x:
print("x is zero")
else:
print("x is not zero")

Результатом выполнения данного кода будет вывод на экран строки "x is zero", так как not x инвертирует значение истины для переменной x. Если x равно 0, то not x будет истинным.

Оператор not в цикле while

Оператор not также может быть использован в условии цикла while для проверки условия до выполнения тела цикла. В следующем примере оператор not используется для проверки, является ли переменная count положительной:

Python

count = 3
while not count <= 0:
print(count)
count -= 1

Результатом выполнения данного кода будет вывод на экран чисел от 3 до 1, так как not count <= 0 инвертирует значение истины для переменной count. Пока count не станет меньше или равным 0, цикл будет выполняться.

Использование оператора not в не-логических контекстах

Оператор not также может быть использован в не-логических контекстах, позволяя инвертировать значение истины переменных, не являющихся логическими. Например, вы можете использовать оператор not для конвертации числа 0 в True и любого другого числа в False.

Python

x = 0
y = 10
print(not x) # True
print(not y) # False

В этом примере, оператор not используется для инвертирования значения переменных x и y. Результатом будет True, если переменная равна 0, и False, если переменная не равна 0.

Использование функции operator.not_()

Помимо использования оператора not, вы также можете воспользоваться функцией operator.not_(), чтобы выполнить логическую инверсию переменных. Эта функция принимает один аргумент и возвращает инвертированное значение истины.

Перепишем предыдущий пример с использованием функции operator.not_():

Python

import operator
x = 0
y = 10
print(operator.not_(x)) # True
print(operator.not_(y)) # False

Результат выполнения кода будет таким же, как и в предыдущем примере.

Работа с оператором not в Python: Лучшие практики

При использовании оператора not в вашем коде существуют некоторые рекомендации и лучшие практики, которых стоит придерживаться:

Проверка вхождения

При использовании оператора not в операторе if или условии цикла while, рекомендуется использовать проверку на вхождение, чтобы проверить наличие элемента в контейнере. Например, вместо написания if not x == value, лучше написать if value not in x. Это делает код более читабельным и понятным.

Проверка тождества объектов

Иногда оператор not может использоваться для проверки тождества объектов. Например, вы можете использовать if not x is None, чтобы проверить, есть ли у объекта значение None. Однако, рекомендуется использовать if x is not None, чтобы сделать код более ясным и понятным.

Избегайте ненужной отрицательной логики

При написании кода с использованием оператора not старайтесь избегать ненужной отрицательной логики. Вместо написания if not condition, лучше использовать if condition == False или if not condition, чтобы сделать код более понятным и легким для чтения.

Заключение

Оператор not в Python предоставляет возможность инвертировать значение истины логических выражений и объектов. Вы можете использовать его в логических контекстах, таких как операторы if и while, а также в не-логических контекстах для инверсии значения истины переменных. Правильное использование оператора not поможет вам писать точные отрицательные логические выражения для управления выполнением вашей программы.

В этом руководстве вы научились использовать оператор not в различных контекстах, а также ознакомились с некоторыми лучшими практиками его применения. Не забывайте использовать оператор not с умом, чтобы улучшить читабельность и понятность вашего кода.