Computação Múltipla Escolha

Qual é a saída do seguinte snippet? o código causará um erro de tempo de execução

Qual é a saída do seguinte snippet?

def fun(x):
  if x % 2 == 0:
    return 1
  else:
    return 2

print(fun(fun(2)))```
  1. o código causará um erro de tempo de execução

Resolução completa

Explicação passo a passo

A
Alternativa A

Alternativa A (Valor: 1)

O código Python apresentado não gera erro de execução. A saída correta é o número 1.

Análise Detalhada

Para encontrar a resposta, precisamos simular a execução do código passo a passo, seguindo a ordem das chamadas de função.

1. Entendendo a Função fun(x)

A função recebe um parâmetro x e aplica uma verificação simples:

  • Se x for par (x % 2 == 0), retorna 1.
  • Se x for ímpar (caso contrário), retorna 2.

2. Rastreamento da Execução

O comando principal é print(fun(fun(3))). As funções aninhadas são executadas de dentro para fora.

Passo 1: Avaliação interna fun(3)

  • O valor de x é 3.
  • Verificamos se 3 % 2 == 0. Como 3 é ímpar, o resultado é False.
  • O bloco else é executado e retorna 2.
  • Substituímos o chamado interno por seu resultado: agora temos print(fun(2)).

Passo 2: Avaliação externa fun(2)

  • Agora o valor de x é 2 (retorno do passo anterior).
  • Verificamos se 2 % 2 == 0. Como 2 é par, o resultado é True.
  • O bloco if é executado e retorna 1.

Passo 3: Impressão

  • O comando final é print(1), que exibe o número na tela.

Tabela Comparativa dos Passos

ChamadaValor de xx % 2 == 0?Retorno
fun(3)3Não (Ímpar)2
fun(2)2Sim (Par)1

Conclusão

A alternativa selecionada na imagem ("o código causará um erro de tempo de execução") está incorreta. O código é sintaticamente válido e a lógica matemática funciona perfeitamente, resultando no número 1.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.