Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025
Programação›Linguagens 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
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.
CCerto
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 avalianumero > 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).
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.