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

Python не оператор

Не оператор Python не возвращает True, если один операнд оценивает false и возвращает false, если он оценивает true. Таким образом, это логически отрицает неявное или явное логическое значение операнда. Когда вы прочитали статью, вы также можете посмотреть мое видео для поддержки объяснений: https://youtu.be/ruwiymlpgr4 Python не Оператор на логии Вы … Python не Оператор Подробнее »

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

Python’s не Оператор возвращает Правда Если один операнд оценивает Ложь и возвращает false, если он оценивает Правда Отказ Таким образом, это логически отрицает неявное или явное логическое значение операнда.

Когда вы прочитали статью, вы также можете посмотреть мое видео для поддержки объяснений:

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

Вы можете применить не Оператор для логического значения и Python инвертировать логический операнд. Таким образом, выражение не ложь становится Правда и Не правда становится Ложь Отказ

True False
False True

Вы можете увидеть эти примеры в следующем скрипте:

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

Python не оператор на целое число

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

False 1
False 99
False -99
True 0

Все целые числа, кроме 0, внутренне преобразуются в Правда Логическое значение. Таким образом, целые числа 1, 99 и даже -99 приводят к расчету Не правда который оценивает Ложь Отказ

Вы можете увидеть эти примеры в следующем скрипте:

>>> not 1
False
>>> not 99
False
>>> not -99
False
>>> not 0
True

Python не оператор перегрузка

Интересно, что вы также можете применить логический не оператор на произвольных объектах Python. Базовая идея – «правдоподобность» объектов Python, то есть каждый объект Python имеет соответствующее логическое значение, как определено __bool __ () магический метод.

В следующем коде вы создаете пользовательский класс под названием My_obj и использовать оператор « не » на экземпляры этого класса. Вы явно определяете __bool __ () Способ настроить поведение не оператора на ваши пользовательские классы.

class My_Obj:
    def __init__(self, number):
        self.number = number

    def __bool__(self):
        return bool(self.number)


my_0 = My_Obj(0)
my_1 = My_Obj(1)
my_99 = My_Obj(99)

print('not', my_0.number, '=', not my_0)
print('not', my_1.number, '=', not my_1)
print('not', my_99.number, '=', not my_99)

Выходы:

not 0 = True
not 1 = False
not 99 = False

Если бы вы не перекрывали __bool__ Magic Method, Python будет принимать все объекты пользовательских объектов, чтобы быть Правда поэтому результаты будут Ложь для всех трех объектов.

Python не оператор в списках

Вы можете применить не Оператор на произвольных объектах, включая Списки Отказ Каждый объект списка имеет связанное логическое значение, как определено Bool (список) Метод-все списки оценивают в Правда Кроме пустого списка. Если вы применяете не Оператор на не пустые Список, Python всегда возвращает Ложь Отказ Только пустой список будет оцениваться на Правда под не оператор. Вот почему вы часто видите выражение не список В заявлении, чтобы убедиться, что список не пусто в остальном теле.

l_1 = [1, 2, 3]
l_2 = []

if not l_1:
    print(l_1, 'is empty')
else:
    print(l_1, 'is non-empty')

if not l_2:
    print(l_2, 'is empty')
else:
    print(l_2, 'is non-empty')

Выход этого кода-фрагмента:

[1, 2, 3] is non-empty
[] is empty

Python не оператор на струнах

Применить не Оператор на струнах, чтобы проверить, пустая строка. Каждая строка имеет соответствующее логическое значение, как определено Bool (строка) и все строки оценивают в Правда Кроме пустой строки. Если вы применяете не Оператор на непустой строке, Python возвращает Ложь Отказ Если вы примените его к пустой строке, Python возвращает Правда Отказ Вот почему вы часто видите выражение не строка В заявлении, чтобы убедиться, что строка пуста в корпусе, если.

s_1 = 'finxter'
s_2 = ''

if not s_1:
    print('string s_1', s_1, 'is empty')
else:
    print('string s_1', s_1, 'is non-empty')

if not s_2:
    print('string s_2', s_2, 'is empty')
else:
    print('string s_2', s_2, 'is non-empty')

Выход этого кода-фрагмента:

string s_1 finxter is non-empty
string s_2  is empty

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

Python оценивает не перед любым другим логическим операндом, таким как и или или Отказ Таким образом, выражение не х и у оценит (не х) и y И не не (х и у) Отказ

В следующем примере показано, что первые две интерпретации приоритета оператора являются одинаковыми, тогда как третий отличается. Таким образом, не Оператор имеет приоритет до и оператор.

>>> not True and False
False
>>> (not True) and False
False
>>> not (True and False)
True

Как и Оператор имеет приоритет до или Оператор, то не оператор имеет приоритет до или Оператор также. Вот доказательство:

>>> not False or True
True
>>> (not False) or True
True
>>> not (False or True)
False

Первые два случая генерируют те же результаты, потому что они одинаковы – не оценивается не оператор.

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

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

(Правда и правда) и Возвращает true, если обе операнды верны, и ложь иначе.
(Ложь или правда) или Возвращает true, если хотя бы один из двух операндов верно, и ложь иначе.
(не правда) нет Возвращает true, если один операнд ложный, и False в противном случае.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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