Módulo 6 - Operadores e cálculos

Operadores de comparação: perguntas de sim ou não

9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026

O que você vai aprender

  • Usar os seis operadores de comparação em expressões.
  • Reconhecer que toda comparação resulta num valor bool: True ou False.
  • Distinguir com segurança o = de atribuição do == de comparação.
  • Comparar textos sabendo que maiúsculas e minúsculas contam.

As seis perguntas que o Python responde

Até aqui os operadores produziam números. Os desta aula produzem respostas. Uma comparação é uma pergunta fechada que o Python responde com um dos dois valores bool que você conheceu no módulo 4: True ou False. Esse tipo de pergunta é a peça que faltava para os programas tomarem decisões, e o módulo 7 inteiro depende dela.

OperadorPerguntaExemploResposta
==É igual a?5 == 5True
!=É diferente de?5 != 3True
>É maior que?5 > 8False
<É menor que?5 < 8True
>=É maior ou igual a?5 >= 5True
<=É menor ou igual a?5 <= 4False

Os seis operadores de comparação. Repare no != lendo-se é diferente de: o ponto de exclamação nega o igual.

idade = 20

print(idade >= 18)        # True
print(idade == 30)        # False
print(type(idade >= 18))  # <class 'bool'>

A comparação devolve bool, e dá para imprimir a resposta direto. Guardar a resposta numa variável também funciona.

Note o detalhe dos operadores compostos: >= e <= se escrevem nessa ordem, com o sinal de igual por último. Escrever =< ou => causa erro de sintaxe na hora. E números de tipos diferentes se comparam numericamente sem drama: a expressão 5 == 5.0 dá True, porque o valor é o mesmo, ainda que um seja int e o outro float.

Um igual guarda, dois iguais comparam

Chegamos à distinção mais importante da aula, talvez do módulo. O sinal de igual sozinho, =, é ATRIBUIÇÃO: uma ordem para guardar um valor numa variável. O sinal duplo, ==, é COMPARAÇÃO: uma pergunta sobre igualdade, com resposta True ou False. Na matemática da escola, um único símbolo fazia os dois papéis; em programação, cada papel tem o seu.

idade = 18    # ORDEM: guarde 18 na variável idade
idade == 18   # PERGUNTA: idade vale 18? Resposta: True
idade == 21   # PERGUNTA: idade vale 21? Resposta: False

Mesmo símbolo de base, papéis opostos. A ordem muda o estado do programa; a pergunta só observa.

A boa notícia é que o Python protege você do pior cenário. Em algumas linguagens, usar = onde deveria ser == cria um bug silencioso que atribui em vez de comparar. Em Python, escrever uma atribuição no lugar de uma comparação dentro de um if gera SyntaxError imediato, apontando a linha. O erro contrário, usar == querendo atribuir, também não passa despercebido: a variável simplesmente não recebe o valor, e a linha vira uma pergunta cuja resposta ninguém leu.

# ERRADO: um = sozinho não compara.
# if idade = 18:  ->  SyntaxError: invalid syntax

# CERTO: comparação usa dois iguais.
idade = 18
print(idade == 18)  # True

O exemplo comentado mostra o que quebra: atribuição onde o Python esperava uma expressão de comparação.

Comparando textos: maiúsculas contam

Comparação não é exclusividade de número. Strings também respondem a == e !=, e a regra é rigorosa: dois textos só são iguais se tiverem exatamente os mesmos caracteres, na mesma ordem, com as mesmas maiúsculas e minúsculas. Para o Python, Ana e ana são textos diferentes, porque o A maiúsculo e o a minúsculo são caracteres distintos por dentro.

print("Ana" == "Ana")   # True
print("Ana" == "ana")   # False (maiúscula conta)
print("Ana" == "Ana ")  # False (o espaço no final conta)
print("10" == 10)       # False (texto e número nunca são iguais)

Quatro comparações de string. As três últimas são as que derrubam iniciantes em programas reais.

A última linha do exemplo merece um alerta com nome e sobrenome. O input devolve texto, você sabe desde o módulo 5. Então, se o usuário digitar 18 e você comparar a resposta crua com o número 18, a expressão dá False: o texto dezoito nunca é igual ao número dezoito, por mais que se pareçam na tela. Ou você converte antes com int(), ou compara texto com texto. Esse é, com folga, o erro de comparação mais comum do nível básico.

Teste rápido

Qual a diferença entre idade = 18 e idade == 18 em Python?

Perguntas frequentes

Por que igualdade usa dois sinais (==) em vez de um?
Porque o sinal único já tem emprego: atribuir valor a variável. As linguagens precisavam de um símbolo diferente para a pergunta de igualdade, e o == virou convenção décadas atrás. O Python herdou o padrão, que hoje vale para quase todas as linguagens em uso.
O que exatamente o != significa?
É diferente de. A expressão a != b devolve True quando os valores são diferentes e False quando são iguais; é a negação exata do ==. O ponto de exclamação vem da tradição das linguagens da família do C, onde ele representa negação.
Comparar 5 com 5.0 dá True ou False?
Dá True. Entre tipos numéricos, o Python compara o valor matemático, e 5 e 5.0 representam a mesma quantidade, ainda que um seja int e o outro float. Já a comparação entre número e texto dá sempre False no ==, mesmo que se pareçam, como 10 e a string 10.
Posso usar > e < com textos?
Pode: o Python compara strings pela ordem dos caracteres, parecida com a ordem alfabética de um dicionário. A expressão de abacaxi menor que banana dá True. Só há uma pegadinha: todas as maiúsculas vêm antes das minúsculas nessa ordem interna, então Zebra fica antes de abelha. No nível básico, use > e < principalmente com números.
Como comparo a resposta do usuário sem me preocupar com maiúsculas?
Padronizando o texto antes da comparação. O método lower(), que o módulo 12 apresenta em detalhe, converte tudo para minúsculas: aí SIM, Sim e sim viram o mesmo texto sim antes do ==. Até lá, os exercícios do curso pedem respostas em formato combinado para evitar o problema.
Posso guardar o resultado de uma comparação numa variável?
Pode, e é útil: maior_de_idade = idade >= 18 guarda True ou False na variável, com um nome que documenta a intenção. Depois dá para imprimir, combinar com outros testes (assunto da próxima aula) ou usar numa decisão no módulo 7. Comparação é valor como outro qualquer.

Fontes

Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.