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.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Operadores de comparação: perguntas de sim ou não.
Os objetivos desta aula. 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.
Veja o essencial, parte por parte.
As seis perguntas que o Python responde. Comparações usam == (igual), != (diferente), > < >= e <= (maior, menor e as versões com ou igual).
Um igual guarda, dois iguais comparam. O = é o funcionário que cola a etiqueta de preço no produto: ele define o valor.
Comparando textos: maiúsculas contam. Se a resposta é número, converta primeiro: int(input(...)) ou float(input(...)).
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
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.
| Operador | Pergunta | Exemplo | Resposta |
|---|---|---|---|
| == | É igual a? | 5 == 5 | True |
| != | É diferente de? | 5 != 3 | True |
| > | É maior que? | 5 > 8 | False |
| < | É menor que? | 5 < 8 | True |
| >= | É maior ou igual a? | 5 >= 5 | True |
| <= | É menor ou igual a? | 5 <= 4 | False |
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: FalseMesmo 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) # TrueO 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.