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
| 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.
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.