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 и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.