Operadores de comparação

Os operadores de comparação em Python

O que são os operadores de comparação

Nas aulas de matemática da escola, você deve ter visto símbolos como =, , <, >, e para comparar números.

Em Python a ideia é a mesma: comparamos valores e obtemos um resultado booleano (True ou False). A diferença é que alguns símbolos aparecem de outra forma aqui.

Tabela de operadores de comparação

OperadorNa matemáticaNomeExemplo
===Igual ax == y
!=Diferente dex != y
>>Maior quex > y
<<Menor quex < y
>=Maior ou igual ax >= y
<=Menor ou igual ax <= y

Agora, vamos ver como cada operador funciona.

Igualdade (==)

Compara os valores e retorna True quando são iguais. Quando não são iguais, retorna False.

1print(5 == 5) # 5 é igual a 5? sim! 2print(5 == 7) # 5 é igual a 7? não! 3 4# Saída: 5# True 6# False

Dica rápida: na matemática usamos = para dizer que duas coisas são iguais. Já em Python, a igualdade é escrita com dois sinais de igual (==). O = é o operador de atribuição, que vimos na lição anterior e que guarda um valor numa variável.

Diferença (!=)

Retorna True quando os valores não são iguais, ou seja, quando são diferentes entre si:

1idade = 18 2print(idade != 18) # 18 é diferente de 18? não! 3print(idade != 21) # 18 é diferente de 21? sim! 4 5# Saída: 6# False 7# True

Maior que (>) e Menor que (<)

Comparam a ordem entre números ao dizer se o que aparece antes do operador é maior ou menor que o que aparece depois dele:

1print(7 > 3) # 7 é maior que 3? sim! 2print(2 < 2) # 2 é menor que 2? não! 3 4# Saída: 5# True 6# False

Maior ou igual a (>=)

Retorna True se o primeiro valor for maior ou igual ao segundo valor comparado.

1nota = 7 2print(nota >= 7) # 7 é maior ou igual a 7? sim, é igual! 3print(nota >= 8) # 7 é maior ou igual a 8? não! 4 5# Saída: 6# True 7# False

Menor ou igual a (<=)

Retorna True se o primeiro valor for menor ou igual ao segundo valor comparado.

1limite = 100 2print(limite <= 100) # 100 é menor ou igual a 100? sim, é igual! 3print(limite <= 99) # 100 é menor ou igual a 99? não! 4 5# Saída: 6# True 7# False

Comparações e tipos:

Comparando valores booleanos (True e False)

Os valores booleanos se comportam como números inteiros: True equivale a 1 e False equivale a 0. Isso significa que eles também podem ser usados em comparações numéricas.

1print(True > False) # 1 é maior que 0? não! 2print(True == 1) # 1 é igual a 1? sim! 3 4# Saída: 5# True 6# True

Esse comportamento pode ser útil em algumas situações, mas atenção: True e False ainda são do tipo bool, e não int.

Comparando strings

As strings também podem ser comparadas, mas não da forma mais intuitiva. Essa comparação é feita com base na ordem alfabética Unicode, também chamada de ordem lexicográfica.

Em outras palavras, o Python compara caractere por caractere usando o código interno de cada símbolo.

1print("Ana" < "Bruno") 2 3# Saída: 4# True

Isso acontece porque a letra A vem antes da B na tabela Unicode, mas é importante saber que as letras maiúsculas e minúsculas têm valores diferentes. Todas as maiúsculas vêm antes das minúsculas no Unicode. Assim:

1print("Zebra" < "abelha") 2 3# Saída: 4# True

Isso ocorre porque Z (maiúsculo) tem valor Unicode menor que a (minúsculo).

Comparando tipos diferentes

Nem todos os tipos podem ser comparados entre si. A partir da versão 3 do Python, comparar tipos incompatíveis, como números com strings, gera erro.

1print(10 < "10") 2 3# Saída: 4# Traceback (most recent call last): 5# File "<python-input-2>", line 1, in <module> 6# print(10 < '10') 7# ^^^^^^^^^ 8# TypeError: '<' not supported between instances of 'int' and 'str'

Esse erro existe para evitar resultados ambíguos. Se você precisar comparar tipos diferentes, primeiro converta um deles com funções como int(), float() ou str(), conforme o caso.

Encadeando comparações

Python permite encadear comparações para escrever intervalos de forma natural, exatamente como fazemos em matemática.

Podemos escrever:

1x = 5 2print(1 < x < 10) # 5 é maior que 1 E menor que 10? sim! 3 4# Saída: 5# True

Também vale com igualdade no meio do caminho:

1x = 7 2y = 7 3print(3 <= x == y < 10) # 3 <= x é True. y < 10 é True. 4 5# Saída: 6# True # True é igual a True? Sim!

Com os operadores de comparação, seu código consegue testar condições e produzir valores booleanos claros. No próximo passo, vamos combinar esses resultados usando os operadores lógicos para criar regras ainda mais poderosas e expressivas.