Compreendendo os Operadores de Igualdade e Desigualdade em Python
Em Python, a comparação entre objetos é uma tarefa comum, e os operadores “não igual a” e “igual a” são ferramentas essenciais para determinar se dois objetos possuem o mesmo valor. Este guia irá explorar a fundo como usar esses operadores, com exemplos práticos e concisos para facilitar a sua compreensão.
Neste artigo, você vai aprender:
- A estrutura e as aplicações do operador de desigualdade (!=).
- A mecânica e o uso do operador de igualdade (==) com exemplos.
- Como os operadores “is” e “is not” são usados para verificar a identidade de objetos em Python.
Vamos iniciar nossa jornada de aprendizado.
Sintaxe do Operador de Desigualdade em Python
Para comparar dois objetos Python, chamados de obj1
e obj2
, a forma básica de usar o operador de desigualdade é:
<obj1> != <obj2>
- Este operador retorna
True
se os valores deobj1
eobj2
forem diferentes. - Retorna
False
se os valores forem iguais.
Importante: Os objetos obj1
e obj2
podem ser de diferentes tipos, como números inteiros, números de ponto flutuante, cadeias de caracteres (strings), listas, entre outros.
Exemplos Práticos do Operador de Desigualdade em Python
A seguir, vamos explorar alguns exemplos para consolidar seu entendimento do operador de desigualdade.
Comparando Valores com o Operador de Desigualdade
Vamos começar com um exemplo simples.
num1 = 27
num2 = 3 * 9
num1 != num2
# Resultado: False
Para testar os exemplos, você pode usar um ambiente de desenvolvimento Python online ou executá-los diretamente em sua máquina.
Neste caso, como num1
é igual a 27 e num2
também resulta em 27 (3 * 9 = 27), seus valores são idênticos. Assim, o operador !=
retorna False
.
Agora, vejamos outro exemplo.
No código abaixo, num1
é definido como o inteiro 7, e num2
é a string “7”. Por serem de tipos distintos, o operador !=
retorna True
.
num1 = 7
num2 = "7"
num1 != num2
# Resultado: True
Podemos converter a string em um inteiro para fazer a comparação corretamente, veja:
num1 = 7
num2 = int("7")
num1 != num2
# Resultado: False
Agora, o resultado é False
, pois num1
e num2
são ambos o número inteiro 7.
O operador de desigualdade também funciona com coleções de dados, como listas, tuplas e conjuntos.
Observação: Ao comparar listas, o operador verifica cada elemento individualmente. Duas listas, lista1
e lista2
, com o mesmo comprimento n, são consideradas iguais apenas se lista1[i] == lista2[i]
para todo i no intervalo {0, 1, 2, 3, …, n-1}.
Veja o exemplo:
lista1 = [2, 4, 6, 8]
lista2 = [2, 4, 6, 9]
lista1 != lista2
# Resultado: True
Como lista1
e lista2
diferem em um elemento, o operador !=
retorna True
.
Utilizando o Operador de Desigualdade em Condicionais
O operador de desigualdade é frequentemente utilizado em estruturas condicionais.
Por exemplo, o código a seguir verifica se um número é ímpar, usando a condição num % 2 != 0
.
num = 7
if num % 2 != 0:
print("O número é ímpar.")
else:
print("O número é par.")
# Resultado: O número é ímpar.
O operador também pode ser usado em list comprehensions para filtrar elementos. No exemplo, impares_10
conterá todos os números ímpares menores que 10.
impares = [num for num in range(10) if num % 2 != 0]
print(impares)
# Resultado: [1, 3, 5, 7, 9]
Com isso, concluímos a análise do operador de desigualdade (!=
). O operador de igualdade (==
), que veremos a seguir, tem um comportamento oposto.
Sintaxe do Operador de Igualdade em Python
A sintaxe do operador de igualdade em Python é:
<obj1> == <obj2> #onde <obj1> e <obj2> são objetos Python válidos
- Ele retorna
True
se os valores deobj1
eobj2
forem iguais. - Retorna
False
caso contrário.
Exemplos Práticos do Operador de Igualdade em Python
O operador de igualdade (==
) opera de maneira similar ao operador de desigualdade.
A seguir, veremos exemplos de como:
- comparar se duas strings são idênticas;
- verificar se um número é par;
- usar condicionais em list comprehensions.
Comparando Valores com o Operador de Igualdade
No exemplo abaixo, str1
e str2
possuem o mesmo valor. O operador ==
retorna True
.
str1 = "codigo"
str2 = "codigo"
str1 == str2
# Resultado: True
Agora, vamos usar o operador em uma expressão condicional.
Lembre-se: Um número é par se for divisível por 2. A condição no código é num % 2 == 0
.
num = 10
if num % 2 == 0:
print("O número é par.")
else:
print("O número é ímpar.")
# Resultado: O número é par.
Ampliando o exemplo, vamos usar list comprehensions para obter todos os números pares menores que 10.
pares_10 = [num for num in range(10) if num % 2 == 0]
print(pares_10)
# Resultado: [0, 2, 4, 6, 8]
Analisando o exemplo:
range(10)
gera uma sequência de números de 0 a 9.- A condição
num % 2 == 0
é verdadeira apenas para números pares. - Assim,
pares_10
se torna uma lista contendo os números pares menores que 10.
Até aqui, você aprendeu a verificar a igualdade de valores usando os operadores !=
e ==
. A próxima seção mostrará como verificar a identidade de objetos em Python, ou seja, se eles são o mesmo objeto na memória.
Verificando a Identidade de Objetos com os Operadores “is” e “is not”
Se você está começando com Python, pode se confundir com os operadores ==
e is
. Vamos esclarecer essa diferença.
Em exemplos anteriores, vimos que str1
e str2
eram iguais e que o operador ==
retornava True
.
Agora, observe o código a seguir.
str1 = "codigo"
str2 = "codigo"
str1 is str2
# Resultado: False
O resultado de str1 is str2
é False
.
Vamos entender o que o operador is
faz em Python.
O operador is
verifica se dois objetos Python são idênticos. Ele retorna True
apenas se ambos se referem ao mesmo objeto na memória.
Mesmo que str1
e str2
tenham valores iguais, str1 is str2
retorna False
, porque eles não apontam para o mesmo objeto na memória. Eles possuem identidades distintas.
Em resumo, ==
verifica a igualdade de valor, enquanto is
verifica a igualdade de identidade.
Em Python, a função id()
retorna a identidade de um objeto.
Execute o código abaixo para obter as identidades de str1
e str2
.
id(str1)
# Exemplo de resultado: 139935398870320
id(str2)
# Exemplo de resultado: 139935398871344
Como as identidades são diferentes, str1 is str2
retorna False
.
Para resumir:
<obj1> is <obj2> # retorna True se, e somente se,
id(<obj1>) == id(<obj2>) # retorna True
Vamos verificar com o seguinte exemplo:
str1 = "codigo"
str2 = str1
print(str1 is str2)
print(id(str1) == id(str2))
# Resultado
True
True
O operador is not
é o oposto de is
. Ele retorna False
apenas se os dois objetos forem idênticos na memória e True
caso contrário.
Nos exemplos anteriores, experimente substituir is
por is not
para verificar o resultado.
Conclusão
Esperamos que este guia tenha sido esclarecedor.
Recapitulando, você aprendeu:
- a usar os operadores de igualdade (
==
) e desigualdade (!=
) para comparar valores de objetos em Python; - a diferença entre igualdade de valores e identidade de objetos em Python;
- como os operadores
is
eis not
auxiliam na verificação da identidade de objetos.
Para aprofundar seus conhecimentos, explore como calcular a diferença de tempo ou como desenvolver um jogo da cobrinha em Python.
Aguardamos você em nosso próximo tutorial. Até lá, bons estudos e boa programação! 🎉