Dominando Operadores de Igualdade e Desigualdade em Python

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 de obj1 e obj2 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 de obj1 e obj2 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 e is 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! 🎉