Os operadores de comparação em Python
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.
| Operador | Na matemática | Nome | Exemplo |
|---|---|---|---|
== | = | Igual a | x == y |
!= | ≠ | Diferente de | x != y |
> | > | Maior que | x > y |
< | < | Menor que | x < y |
>= | ≥ | Maior ou igual a | x >= y |
<= | ≤ | Menor ou igual a | x <= y |
Agora, vamos ver como cada operador funciona.
==)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:
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.
!=)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
>) 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:
>=)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
<=)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
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:
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.
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).
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
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.
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
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
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.