Questão de Programação — Linguagens de programação — FGV 2024
- Código
- fg077407
- Banca
- FGV
- Órgão
- CVM
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista - Perfil 8 - TI / Sistemas e Desenvolvimento - Tarde
- A0;
- B40;
- C256;
- D625;
- Eerro.
GabaritoC — 256;
Gabarito: letra C. O código calcula len(r) ** len(r) para a string '25'*2 (que é '2525'), resultando em 4⁴ = 256.
A função prod retorna o produto dos elementos de um iterável. O lambda strPow = lambda r: prod(len(r) for x in r) gera uma sequência de len(r) valores, cada um igual a len(r), e os multiplica. Para a string '2525', len('2525') = 4, e a expressão gera quatro valores 4, cujo produto é 4*4*4*4 = 256. O comando print exibe 256 seguido de ; (devido ao sep=";" e ao segundo argumento vazio).
0 não é o resultado; a operação não produz zero.
40 seria o resultado se houvesse soma, mas é produto.
256, conforme explicado.
625 = 5⁴, mas a string tem comprimento 4, não 5.
Não há erro de execução: o código é válido em Python 3.8+ com prod disponível.
Ao analisar expressões com prod e generator, lembre-se de que x percorre os elementos do iterável, mas o valor usado é len(r) (fixo). Assim, o resultado é sempre len(r) elevado ao número de elementos de r.
Link permanente: /questoes/fg077407