Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025

ProgramaçãoLinguagens de programação
Código
ce194804
Banca
CESPE / CEBRASPE
Órgão
ANM
Ano
2025
Nível
Superior
Cargo
Especialista em Recursos Minerais - Especialidade: Geologia, Geografia, Geofísica, Engenharia de Minas, Agrônoma, Florestal, Civil, Ambiental, Arquitetura ou Tecnologia da Informação
Imagem da questão
Considerando o script Python que precedente, julgue o próximo item.No trecho if booleano and numero > 10:, se o valor da variável booleano for False, a condição não será avaliada completamente e o número não será comparado com 10.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Operadores lógicos em Python: avaliação de curto-circuito

Gabarito: letra C (CERTO). Em Python, o operador and realiza a avaliação de curto-circuito (short-circuit evaluation): se o primeiro operando for False, o segundo não é avaliado. Portanto, se booleano for False, a expressão booleano and numero > 10 retorna False imediatamente, sem comparar numero com 10.

A avaliação de curto-circuito é um comportamento fundamental dos operadores lógicos and e or em Python (e em muitas outras linguagens). Ela existe por duas razões principais: eficiência (evita trabalho desnecessário) e segurança (permite escrever expressões que só seriam válidas se a primeira condição fosse verdadeira, como if lista and lista[0] > 0).

No caso do operador and, a regra é simples: a expressão é avaliada da esquerda para a direita, e a avaliação para assim que o resultado final é determinado. Como and só retorna True se ambos os operandos forem verdadeiros, se o primeiro for False, o resultado já está decidido — não há necessidade de avaliar o segundo. O mesmo raciocínio se aplica ao or: se o primeiro operando for True, o resultado já é True, e o segundo não é avaliado.

Vamos aplicar isso ao trecho do enunciado:

if booleano and numero > 10:

Se booleano = False, a expressão booleano and numero > 10 é avaliada como False and .... Como o primeiro operando é False, o Python não avalia numero > 10 — ele simplesmente retorna False e o bloco if não é executado. Isso é exatamente o que a afirmação diz: "a condição não será avaliada completamente e o número não será comparado com 10".

NÃO CAIA NESSA!

A banca explora a confusão entre a avaliação de curto-circuito e a avaliação "completa" da expressão. Muitos candidatos pensam que, por ser uma expressão lógica, todos os operandos são sempre avaliados. Mas em Python (e em C, Java, JavaScript etc.), os operadores and e or são preguiçosos: eles só avaliam o que é necessário para determinar o resultado. Se booleano é False, numero > 10 nunca é avaliado — e isso é uma característica da linguagem, não um bug.

Para fixar, veja a tabela de avaliação do and:

Primeiro operando

Segundo operando

Resultado

Segundo avaliado?

True

True

True

Sim

True

False

False

Sim

False

(qualquer)

False

Não

A mesma lógica vale para o or, mas invertida: se o primeiro operando for True, o segundo não é avaliado.

PEGA ESSA DICA!

Na prova, quando vir uma expressão com and ou or, pergunte-se: "o resultado já está decidido após o primeiro operando?" Se sim, o segundo não é avaliado. Isso é especialmente útil em questões que perguntam sobre efeitos colaterais (como uma função que seria chamada) ou sobre erros que seriam evitados (como uma divisão por zero).

1Operador and
Primeiro False → não avalia o resto
Primeiro True → avalia o segundo
2Operador or
Primeiro True → não avalia o resto
Primeiro False → avalia o segundo
3Motivos
Eficiência
Segurança (evita erros)
Curto-circuito em Python
LEVELsoulevel.com.br
Curto-circuito em Python: Operador and (Primeiro False → não avalia o resto, Primeiro True → avalia o segundo); Operador or (Primeiro True → não avalia o resto, Primeiro False → avalia o segundo); Motivos (Eficiência, Segurança (evita erros))

Item — ✅ CERTO ⟵ GABARITO

A afirmação está correta. A avaliação de curto-circuito do operador and em Python garante que, se o primeiro operando (booleano) for False, o segundo operando (numero > 10) não será avaliado. Isso é um comportamento padrão da linguagem, documentado na documentação oficial e amplamente conhecido.

Gabarito: letra C (CERTO).

Link permanente: /questoes/ce194804