Comparações e operadores lógicos

Produzir valores booleanos a partir de comparações e combinações de condições.

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 >= 18 produz um bool.
  • idade_ok guarda essa resposta para tornar a regra legível.
  • idade_ok and tem_ingresso exige as duas condições verdadeiras.
  • O programa ainda não escolhe caminhos aqui; apenas calcula condições. A decisão com if vem 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.

  1. Crie exemplos em que and produza True e False.
  2. Troque and por or no exemplo de aprovação e explique por que a regra muda.
  3. Teste not True e not False.
  4. 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 and quando 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.