С помощью ключевого слова «not» в Python мы инвертируем выражение, поэтому, если оно возвращает False, то теперь становится True. В основном мы используем not в операторах if в Python. Иногда мы хотим инвертировать значение логической переменной, и в этом случае, if not очень полезно. Ключевым словом not мы меняем значение выражений.
Рассмотрим использование условия If Not и сравним его с Is Not в Python.
Пример If not в Python
Оператор Not вместе с оператором if может использоваться для выполнения блока условия, когда условие оценивается как False. Чтобы использовать логический оператор not в Python и логическое выражение if, используйте следующий синтаксис.
Синтаксис
|
1 2 3 |
if not variable: # whatever statement you want to execute print('variable is false.') |
Пример
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# not boolean value data = False if not data: print('data is indeed False.') # not boolean condition data = 19 if not data == 19: print('data is not 19') else: print('data is 19') |
Выход:
|
1 2 |
data is indeed False. data is 19 |
В этом примере сначала мы определили логическое значение для переменной данных, которое равно False. Затем мы использовали условие if not, чтобы проверить, являются ли данные = False и да, данные действительно False. Таким образом, он выполняет этот блок и печатает оператор.
Затем в следующей части мы присвоили целочисленное значение 19 переменной данных и проверили условие, если данные не равны 19, но они равны 19, и выполняется блок else.
Программа Python, которая использует вызов метода not
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
def equals(first, second): # Return true if the two ints are equal. return first == second data = 19 data2 = 21 if data != data2: # This is reached. print(False) if not equals(data, data2): # This is reached. print(False) if data == 0: print(0) elif not equals(data, data2): # This is reached. print(False) |
Выход:
|
1 2 3 |
False False False |
В этом первом примере мы используем предложение «if not», чтобы проверить, возвращает ли функция False. Итак, если метод equals() возвращает False, то вводится блок if.
Elif: Мы также можем использовать «not» внутри предложения elif. Ключевое слово not можно добавить в начало любого выражения.
3 «ложных» значения False печатаются, поскольку три оператора печати достигаются, когда эта программа выполняется в интерпретаторе Python.
Сравнение if not и is not or !=
Давайте посмотрим пример.
|
1 2 3 4 5 6 7 |
def hp(data=None): if not data: data = 21 return data print(hp()) |
В этом примере мы определили функцию hp(), которая принимает параметр data = None, что означает, что во время вызова функции, даже если мы не передаем какой-либо параметр, он все равно будет считаться data = None.
Таким образом, внутри функции hp(), если нет данных, возвращается True, потому что мы передаем данные = None в аргументе функции. Таким образом, он вернет 21. Если мы передаем данные, отличные от None, то он вернет None, потому что мы не записали блок else в функцию. Таким образом, он вернет None на выходе.
|
1 2 3 4 5 6 7 8 |
def hp(data=None): if not data: data = 21 return data val = 1 print(hp(val)) |
Выход:
|
1 |
None |
А теперь путаница между оператором if not и != в Python.
Мы получаем другой вывод, выполняя if data != None или if data not None.
|
1 2 3 4 5 6 7 8 |
def hp(data=None): if data is not None: data = 21 return data val = 1 print(hp(val)) |
В этом примере мы проверяем, не являются ли данные None. Данные не равны None, потому что они равны 1, что не равно None, поэтому если условие возвращает True, присваивает данным 21 и возвращает данные. Таким образом, if условие не проверяется положительно по отношению к значению None. В то время как оператор is not проверяет отрицательное значение None.
Да, если данные не None, это более явно и, следовательно, лучше, если предположить, что это действительно то, что вы хотите. Это не всегда так; есть тонкие различия: if not data: будет выполняться, если данные являются любым видом нуля или пустым контейнером, или False. Многие люди используют not data там, где они означают, что data не None.
Пусто не равно None в Python
Чтобы проверить, не равен ли пустой список None в Python, используйте следующий код.
|
1 2 3 4 5 6 7 8 |
def hp(data=None): if data is not None: data = [11, 19, 21] return data val = [] print(hp(val)) |
Выход:
|
1 |
[11, 19, 21] |
В этом примере мы передаем пустой список и проверяем, не является ли пустым None, что возвращает True.
Это означает, что пустой список не равен None и возвращает список данных, заполненный значениями.
Программа с not, которая инвертирует логические значения
Чтобы изменить значение логического типа данных, нам достаточно поставить not перед переменной, и переключиться на другое логическое значение. Например, если для данных установлено значение True, и если мы напишем data = not True, то данные станут False.
|
1 2 3 4 5 6 7 8 9 10 |
data = True print(data) # Change True to False with not. data = not data print(data) # Invert the data back to True. data = not data print(data) |
Выход:
|
1 2 3 |
True False True |
Мы можем инвертировать наше логическое значение на not, применив «not», чтобы получить обратное логическое значение.
Программа с not in
Оператор Python «in» используется для проверки того, существует ли значение в последовательности или нет. Он принимает значение True, если находит переменную в указанной последовательности, и False в противном случае.
Оператор Python «not in» оценивается как True, если он не находит переменную в указанной последовательности, и как False в противном случае.
|
1 2 3 4 5 |
data = ["Eleven", "Mike"] # Use not in on a list. if "Dustin" not in data: print(True) |
Выход:
|
1 |
True |
В этом примере Eleven и Mike есть в списке, а Dustin в списке нет. Итак, мы проверяем, нет ли Dustin в списке, и он возвращает True.
Оператор not not
Оператор not not не часто бывает полезен. Но мы можем связать несколько «not» в начале выражения.
|
1 2 3 4 5 |
data = True print(data) val = not not data print(data) |
Выход:
|
1 2 |
True True |
В этом примере сначала мы инициализировали переменную data значением True, а затем распечатали эту переменную.
Затем мы использовали оператор not not для изменения значения True два раза. Это означает, что в первый раз True становится False, а во второй раз снова становится True, а затем мы печатаем val в консоли.
Заключение

В этом уроке мы увидели, что такое if not, и почему мы используем if not вместо is not или !=. Затем мы рассмотрели, что пустые операторы не равны None, Python not, in, not in и not not.
