Pular para o conteúdo

Como usar corretamente a função 'not' em Python?

CodeMDD.io

Usando o operador “not” em Python

by seudominio.com

O operador “not” em Python permite inverter o valor de verdade de expressões e objetos booleanos. Esse operador pode ser usado em contextos booleanos, como declarações “if” e laços “while”. Também funciona em contextos não booleanos, o que permite inverter o valor de verdade das variáveis.

Usar o operador “not” de forma eficiente ajudará você a escrever expressões booleanas negativas precisas para controlar o fluxo de execução em seus programas.

Neste tutorial, você aprenderá:

  • Como o operador “not” em Python funciona
  • Como usar o operador “not” em contextos booleanos e não booleanos
  • Como usar a função “operator.not_” para realizar negação lógica
  • Como e quando evitar lógica negativa desnecessária em seu código

Você também irá codificar alguns exemplos práticos que permitirão entender melhor alguns dos principais casos de uso do operador “not” e as melhores práticas relacionadas ao seu uso. Para aproveitar ao máximo este tutorial, é recomendado um conhecimento prévio sobre lógica booleana, declarações condicionais e laços “while” em Python.

Trabalhando com lógica booleana em Python

George Boole desenvolveu o que hoje é conhecido como álgebra booleana, a qual se baseia em valores “true” e “false”. Também define um conjunto de operações booleanas: “AND”, “OR” e “NOT”. Esses valores e operadores booleanos são úteis na programação, pois ajudam a decidir o curso de ação em seus programas.

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

Esse tipo tem dois valores possíveis: True e False, que são constantes internas em Python. Internamente, Python os implementa como números inteiros:

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

Internamente, Python implementa seus valores booleanos como 1 para True e 0 para False. Você pode executar True + True em seu ambiente interativo Python para verificar que a adição de dois valores booleanos resulta na soma 2.

Começando com o operador “not” em Python

O operador “not” permite inverter o valor de verdade de uma expressão ou objeto booleano. Ele retorna True se o valor de entrada for False, e retorna False se o valor de entrada for True. Você pode usá-lo em declarações “if” e laços “while” para controlar o fluxo de execução com base em condições negativas.

Utilizando o operador “not” em contextos booleanos

Declarações “if”

Em declarações “if”, você pode usar o operador “not” para inverter o valor de uma expressão booleana. Isso é útil quando você deseja executar um bloco de código se uma determinada condição não for verdadeira.

condition = False
if not condition:
print("A condição é falsa, então esta linha será impressa.")

Neste exemplo, a variável condition é inicializada com o valor False, e o operador “not” inverte seu valor para True. Como o valor invertido é True, o bloco de código dentro do “if” será executado e a mensagem “A condição é falsa, então esta linha será impressa.” será exibida na saída.

Laços “while”

Da mesma forma, é possível usar o operador “not” em laços “while” para criar uma condição de saída negativa. Isso significa que o laço será executado enquanto a condição for falsa.

count = 0
while not count >= 5:
print("Contagem:", count)
count += 1

Neste exemplo, o laço “while” será executado enquanto o valor de count não for maior ou igual a 5. A cada iteração, o valor de count é impresso e incrementado em 1. O laço para quando a condição count >= 5 se tornar verdadeira.

Utilizando o operador “not” em contextos não booleanos

Além dos contextos booleanos, o operador “not” também pode ser usado em contextos não booleanos. Nesses casos, o operador inverte o valor de verdade das variáveis.

number = 10
if not number:
print("O número é zero.")
else:
print("O número é diferente de zero.")

Neste exemplo, a variável number é inicializada com o valor 10. Como 10 é diferente de zero, a expressão not number retorna False e o bloco de código dentro do “else” será executado. A mensagem “O número é diferente de zero.” será exibida na saída.

Utilizando a função “operator.not_()“

Outra forma de realizar a negação lógica em Python é usando a função operator.not_(), que está disponível no módulo operator.

import operator
value = True
negated_value = operator.not_(value)
print("Valor original:", value)
print("Valor negado:", negated_value)

Neste exemplo, a função operator.not_() é usada para inverter o valor da variável value. O valor original é True, e o valor negado é False. Ambos os valores são impressos na saída.

Trabalhando com o operador “not” em Python: Melhores práticas

Aqui estão algumas práticas recomendadas ao trabalhar com o operador “not” em Python:

Testar a adesão

Quando você precisa verificar se um elemento não está presente em uma lista, pode usar o operador “not” combinado com o operador in.

numbers = [1, 2, 3, 4, 5]
if 6 not in numbers:
print("O número 6 não está na lista.")

Neste exemplo, a condição 6 not in numbers retorna True porque o número 6 não está na lista numbers. A mensagem “O número 6 não está na lista.” será exibida na saída.

Verificar a identidade dos objetos

Em algumas situações, você pode precisar verificar se dois objetos não são o mesmo objeto. Para isso, o operador “not” pode ser usado em conjunto com o operador de igualdade ==.

object1 = [1, 2, 3]
object2 = [1, 2, 3]
if object1 is not object2:
print("Os objetos não são os mesmos.")

Neste exemplo, a condição object1 is not object2 retorna True porque os objetos object1 e object2 são listas diferentes, mesmo tendo valores semelhantes. A mensagem “Os objetos não são os mesmos.” será exibida na saída.

Evitar lógica negativa desnecessária

Embora o operador “not” seja útil para inverter o valor de verdade de uma expressão, é importante evitar o uso desnecessário de lógica negativa. Em vez disso, tente expressar suas condições em uma forma afirmativa.

Por exemplo, em vez de escrever:

if not error:
# Executar código quando não houver erro

É mais claro e recomendado escrever:

if not error:
# Executar código quando estiver tudo ok

Isso torna o código mais legível e fácil de entender para outros desenvolvedores.

Conclusão

Neste tutorial, você aprendeu a usar o operador “not” em Python para inverter o valor de verdade de expressões booleanas e objetos. Você viu como usar esse operador em contextos booleanos e não booleanos, e aprendeu a evitar o uso desnecessário de lógica negativa. Recomenda-se a prática dos exemplos apresentados para aprimorar seu conhecimento e habilidades em relação ao uso do operador “not” em Python.

Artigo Relacionado