Comparações e operadores lógicos
Objetivo da aula
Produzir valores booleanos a partir de comparações e combinações de condições.
Regra desta aula: vamos assumir que você nunca viu este assunto antes. Nenhum termo importante será usado sem explicação e todo exemplo deve ser entendido linha por linha, não apenas copiado.
Começando do zero
Comparações produzem valores booleanos: True ou False. Operadores lógicos combinam essas respostas. É assim que um programa consegue representar perguntas como “a idade é pelo menos 18?” ou “a nota é suficiente e a presença também?”.
Uma imagem mental para entender
Imagine um segurança com uma lista de regras. Cada regra é uma pergunta de resposta sim/não. “Tem ingresso?” “Tem idade mínima?” O resultado final pode depender de uma pergunta, das duas juntas ou de pelo menos uma delas. Comparações e operadores lógicos fazem esse papel no código.
Conceitos essenciais, sem pular etapas
Comparações
== compara igualdade; != diferença; >, >=, < e <= comparam ordem quando os tipos suportam essa relação.
and
Só resulta True quando as condições consideradas verdadeiras satisfazem ambos os lados.
or
Resulta verdadeiro quando pelo menos um lado é verdadeiro.
not
Inverte o valor booleano lógico do operando no contexto.
Leia como pergunta
A expressão idade >= 18 pode ser lida em voz alta: “idade é maior ou igual a 18?”. Esse hábito reduz erros de sinal.
Modelo mental
DADOS → COMPARAÇÕES → BOOLEANOS → COMBINAÇÃO LÓGICA → REGRA
Exemplo 1 — primeiro veja o programa inteiro
idade = 20
tem_ingresso = True
idade_ok = idade >= 18
entrada_permitida = idade_ok and tem_ingresso
print("idade ok?", idade_ok)
print("entrada permitida?", entrada_permitida)
Agora vamos ler linha por linha
idade >= 18produz umbool.idade_okguarda essa resposta para tornar a regra legível.idade_ok and tem_ingressoexige as duas condições verdadeiras.- O programa ainda não escolhe caminhos aqui; apenas calcula condições. A decisão com
ifvem no módulo seguinte.
Saída esperada
idade ok? True
entrada permitida? True
Exemplo 2 — o mesmo conceito em outra situação
nota = 8.0
presenca = 0.80
aprovado = nota >= 7 and presenca >= 0.75
print(aprovado)
A regra exige nota suficiente e presença suficiente. Se qualquer uma falhar, aprovado será falso.
Experimento guiado
Não pule esta parte. Programação só começa a fazer sentido quando você prevê um resultado, executa e compara a previsão com o que realmente aconteceu.
- Crie exemplos em que
andproduza True e False. - Troque
andpororno exemplo de aprovação e explique por que a regra muda. - Teste
not Trueenot False. - Leia cada comparação em voz alta antes de executar.
Mini desafio
Uma promoção é válida se a pessoa tiver cupom ou for cliente premium. Modele essa regra com booleanos.
Solução comentada
tem_cupom = False
cliente_premium = True
promocao_valida = tem_cupom or cliente_premium
print("Promoção válida?", promocao_valida)
Depois de executar a solução, altere pelo menos um valor e explique por que o novo resultado mudou. Se você só copiou e não consegue explicar cada linha, refaça o desafio em uma versão menor.
Erros comuns e por que acontecem
- Confundir
=com==. - Usar
andquando a regra dizia “ou”, ou vice-versa. - Escrever uma condição longa sem nomes intermediários e dificultar a leitura.
- Comparar tipos incompatíveis sem entender a representação dos dados.
Cheque se você realmente entendeu
Quando A and B é verdadeiro?
Resposta: Quando A e B são verdadeiros no contexto lógico.
Quando A or B é verdadeiro?
Resposta: Quando pelo menos um dos lados é verdadeiro.
Qual é a diferença entre = e ==?
Resposta: = atribui; == compara igualdade.
Resumo em linguagem simples
Nesta aula, o ponto central foi Comparações e operadores lógicos. Tente explicar o modelo DADOS → COMPARAÇÕES → BOOLEANOS → COMBINAÇÃO LÓGICA → REGRA sem olhar a tela. Depois, escreva um exemplo próprio menor que os apresentados. Esse exercício de explicação é parte do aprendizado, não um extra.
Conexão com a próxima aula
Na próxima aula, Fluxo de dados e validação inicial, vamos aproveitar exatamente o que foi construído aqui. Você não precisa memorizar tudo; precisa conseguir reconhecer o conceito e reconstruí-lo com raciocínio e testes.