Questão nº 77

Questão de Estatística · FGV MP-SC 2022 (nº 77)

FGV2022Analista de Dados e PesquisasEstatística
Gabarito: Bver comentário ↓

Analise o código Python a seguir.
```
x = 0
y = 20
try:
print (y/x)
except:
print("Deu erro!")
else:
print("Ok")
finally:
print ("The end")
```
A saída produzida pela execução desse trecho é:

Resposta comentada

Gabarito Alternativa B

Conceito-chave: Em Python, o bloco try tenta executar o código. Se der erro, o bloco except roda. O bloco else só roda se não houver erro. O bloco finally roda sempre, com ou sem erro, e é a última coisa a ser executada.

  • (A) Incorreta: None não é impresso em lugar nenhum; a divisão por zero gera uma exceção, não um valor None, e o else não é executado.
  • (B) Correta: A divisão y/x com x=0 levanta uma exceção (ZeroDivisionError), então o except imprime "Deu erro!". Como houve erro, o else é pulado. O finally sempre executa, imprimindo "The end". A ordem é exatamente: "Deu erro!" e depois "The end".
  • (C) Incorreta: O else só roda se não houver erro; como houve erro, "Ok" nunca é impresso.
  • (D) Incorreta: "Ok" só sairia se a divisão funcionasse, mas 20/0 falha; além disso, o finally viria depois, não antes.
  • (E) Incorreta: Mistura None (que não aparece) e "Ok" (que é pulado), além de ordem errada do finally.

Armadilha da banca: O distrator mais tentador é a letra C, pois muitos alunos confundem else com finally, achando que o else sempre executa. A pegadinha é lembrar que else é condicional ao sucesso do try; já o finally é incondicional.

Fonte: FGV MP-SC 2022 Analista de Dados e Pesquisas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho