Analise o código Python a seguir.def f(x):return pow(x,2)def...
Analise o código Python a seguir.
def f(x):
return pow(x,2)
def newfunc(function,*y):
v=[]
for i,e in enumerate(y):
v+=[function(e) if i%2==0 else 1]
return sum(v)
print(newfunc(f,4,1,3,2))
Após a execução do código, a saída é
- Gabarito Comentado (1)
- Aulas (1)
- Comentários (0)
- Estatísticas
- Cadernos
- Criar anotações
- Notificar Erro
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa Correta: B - 27.
Vamos entender o funcionamento do código Python apresentado. Para isso, precisamos analisar cada parte do código e como elas interagem.
A função f(x)
é bastante simples, ela retorna o quadrado de x
usando a função pow(x, 2)
.
Já a função newfunc(function, *y)
recebe uma função e uma lista de argumentos variáveis. Dentro desta função:
- Uma lista vazia
v
é inicializada. - Um loop
for
percorre todos os elementosy
, enumerando-os para obter tanto o índicei
quanto o elementoe
. - Dentro do loop, se o índice
i
for par (i % 2 == 0
), a funçãofunction(e)
é aplicada e o resultado é adicionado à listav
. Caso contrário, o valor1
é adicionado à lista. - Finalmente, a soma dos elementos da lista
v
é retornada.
Agora, vamos aplicar esses conceitos ao trecho print(newfunc(f, 4, 1, 3, 2))
:
- Para
i = 0
(par),e = 4
:f(4) = 4^2 = 16
- Para
i = 1
(ímpar),e = 1
:1
- Para
i = 2
(par),e = 3
:f(3) = 3^2 = 9
- Para
i = 3
(ímpar),e = 2
:1
A lista v
após o loop será [16, 1, 9, 1]
. A soma dos elementos da lista v
é 16 + 1 + 9 + 1 = 27
. Portanto, a saída do código é 27, confirmando que a alternativa correta é a B.
Justificativa das Alternativas Incorretas:
- A - 7: Este valor não corresponde à soma correta dos elementos de
v
, que deveria ser27
. - C - 5: Mesmo motivo acima, este valor não reflete a soma correta dos elementos processados.
- D - 30: Novamente, este valor não corresponde ao resultado da soma correta, que é
27
.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo