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

Как использовать оператор not в Python?

[

Использование «not» булевого оператора в Python

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

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

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

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

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

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

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

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

>>> isinstance(True, int)
True
>>> isinstance(False, int)
True
>>> int(True)
1
>>> int(False)
0

Getting Started With Python’s not Operator

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

>>> not True
False
>>> not False
True

Using the not Operator in Boolean Contexts

Оператор not можно использовать в булевых контекстах, таких как условные операторы if и циклы while. Он позволяет инвертировать истинность булевого выражения, чтобы контролировать поток выполнения в программе.

if Statements

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

x = 5
if not x > 10:
print("x is not greater than 10")

while Loops

В циклах while вы также можете использовать оператор not для инвертирования условия цикла. Цикл выполняется, пока условие истинно, но оператор not делает его ложным.

x = 0
while not x > 5:
print(x)
x += 1

Using the not Operator in Non-Boolean Contexts

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

x = ""
if not x:
print("x is empty")

Using the Function-Based not Operator

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

import operator
x = True
y = operator.not_(x)
print(y) # Output: False

Working With Python’s not Operator: Best Practices

При использовании оператора not в Python следует учитывать некоторые рекомендации, чтобы написанный код был легко читаемым и понятным.

Test for Membership

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

is_authenticated = False
if not is_authenticated:
print("Access denied")

Check the Identity of Objects

При сравнении объектов с None рекомендуется использовать оператор not для проверки отсутствия значения.

name = None
if not name:
print("Name is not specified")

Avoid Unnecessary Negative Logic

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

if not is_authenticated or not has_permission:
print("Access denied")

Conclusion

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

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

Теперь, когда вы знаете как использовать оператор not в Python, вы можете применить эти знания для написания кода с различными условными выражениями и контролем потока выполнения программы.