Pular para o conteúdo

Como Usar 'not in Python if'?

[

Usando o Operador ‘not’ Booleano em Python

Python’s not operador permite inverter o valor de verdade de expressões booleanas e objetos. Você pode usar esse operador em contextos booleanos, como declarações if e loops while. Ele também funciona em contextos não booleanos, o que permite inverter o valor de verdade das suas variáveis.

Usar o operador not de forma eficaz irá ajudá-lo a escrever expressões booleanas negativas precisas para controlar o fluxo de execução nos 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 no seu código

Você também codificará alguns exemplos práticos que permitirão entender melhor os principais casos de uso do operador not e as melhores práticas em torno do seu uso. Para aproveitar ao máximo esse tutorial, você deve ter algum conhecimento prévio sobre lógica booleana, declarações condicionais e loops while em Python.


Trabalhando com Lógica Booleana em Python

George Boole desenvolveu o que agora é conhecido como álgebra booleana, que se baseia em valores verdadeiro e falso. Ela também define um conjunto de operações booleanas: AND, OR e NOT. Esses valores booleanos e operadores são úteis na programação porque ajudam a decidir ações nos programas.

Em Python, o tipo booleano bool é uma subclasse de int:

>>> issubclass(bool, int)
True
>>> help(bool)
Help on class bool in module builtins:
class bool(int)
| bool(x) -> bool
|
| Methods defined here:
|
| __and__(self, value, /)
| Return self&value.
...

Esse tipo tem dois possíveis valores: True e False, que são constantes embutidas em Python e devem ser capitalizadas. Internamente, o 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

Python implementa internamente seus valores booleanos como 1 para True e 0 para False. Vá em frente e execute True + True no seu ambiente de desenvolvimento interativo e veja o resultado.


Começando com o Operador ‘not’ em Python

O operador not é usado para inverter o valor de uma expressão booleana. Ele retorna True se a expressão for falsa e False se a expressão for verdadeira.

Exemplo 1: Usando o Operador ‘not’ em uma Condição “if”

x = 5
if not x > 0:
print("x é menor ou igual a 0")
else:
print("x é maior que 0")

Neste exemplo, a expressão booleana x > 0 é verdadeira porque x é igual a 5. No entanto, o operador not inverte o valor de verdade da expressão, tornando-a falsa. Portanto, o bloco de código dentro do else será executado e a saída será "x é maior que 0".

Exemplo 2: Usando o Operador ‘not’ em um Loop “while”

x = True
while not x:
print("Executando o loop")
x = True

Neste exemplo, a variável x é inicializada com o valor True. A condição do loop while not x é falsa porque x ainda é verdadeiro. Portanto, o bloco de código dentro do loop não será executado e a saída será vazia. A linha x = True atualiza o valor de x para True, encerrando assim o loop.


Usando o Operador ‘not’ em Contextos Não Booleanos

O operador not também pode ser usado em contextos não booleanos para inverter o valor de verdade de variáveis. Nesses casos, ele converte o valor em um valor booleano antes de aplicar a negação.

Exemplo 3: Usando o Operador ‘not’ para Inverter o Valor Numérico

x = 0
if not x:
print("x é zero")
else:
print("x não é zero")

Neste exemplo, a variável x é inicializada com o valor 0, que é considerado falso em Python. O operador not inverte o valor de verdade de x, tornando-o verdadeiro. Portanto, o bloco de código dentro do if será executado e a saída será "x é zero".

Exemplo 4: Usando o Operador ‘not’ para Inverter o Valor de uma String

name = ""
if not name:
print("O nome está vazio")
else:
print(f"O nome é {name}")

Neste exemplo, a variável name é uma string vazia, que é considerada falsa em Python. O operador not inverte o valor de verdade de name, tornando-o verdadeiro. Portanto, o bloco de código dentro do if será executado e a saída será "O nome está vazio".


Usando a Função-Based ‘not’ em Python

Além do operador not, Python também fornece a função operator.not_() para realizar negação lógica. Essa função é útil quando você precisa aplicar a negação em uma expressão complexa ou quando está trabalhando com sobrecarga do operador not.

Aqui está um exemplo do uso da função not_():

import operator
x = 5
y = 3
result = operator.not_(x > y)
print(result)

Neste exemplo, a função not_() é usada para negar a expressão x > y. O resultado será False, já que x não é maior que y. A função not_() retorna o valor booleano negado da expressão.


Trabalhando com o Operador ‘not’ em Python: Melhores Práticas

Aqui, estão algumas melhores práticas ao trabalhar com o operador not em Python:

Teste para Pertencimento

Ao usar o operador not para verificar se um valor não pertence a uma lista, set ou outro objeto, é recomendado usar o operador in junto com o not, em vez de negar a expressão inteira.

Exemplo:

fruits = ["apple", "banana", "orange"]
if "pear" not in fruits:
print("A pera não está na lista de frutas")
# Saída: A pera não está na lista de frutas

Verifique a Identidade dos Objetos

Ao usar o operador not para verificar a identidade de objetos, é recomendado usar o operador is junto com o not, em vez de negar a expressão inteira.

Exemplo:

x = 5
y = 10
if x is not y:
print("x e y não são o mesmo objeto")
# Saída: x e y não são o mesmo objeto

Evite Lógica Negativa Desnecessária

Ao escrever expressões negativas, tente evitar uma lógica negativa desnecessária. Isso pode tornar seu código mais difícil de ler e entender. Em vez disso, procure expressões positivas que sejam mais claras e concisas.

Exemplo:

is_ready = False
if not is_ready:
print("O sistema não está pronto")
# Saída: O sistema não está pronto

No exemplo acima, seria mais claro escrever a expressão de forma positiva, resultando em um código mais legível.


Conclusão

Neste tutorial, você aprendeu como usar o operador ‘not’ em Python para inverter o valor de verdade de expressões booleanas e objetos. Você viu como usar o operador ‘not’ em contextos booleanos, como declarações ‘if’ e loops ‘while’, e também em contextos não booleanos, para inverter o valor de variáveis. Além disso, você aprendeu a usar a função operator.not_() para realizar negação lógica e algumas melhores práticas ao trabalhar com o operador ‘not’ em Python.

Agora que você tem um bom entendimento do operador ‘not’, você pode usá-lo para escrever expressões booleanas negativas precisas e controlar o fluxo de execução nos seus programas.