Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2024

ProgramaçãoLinguagens de programação
Código
fg077407
Banca
FGV
Órgão
CVM
Ano
2024
Nível
Superior
Cargo
Analista - Perfil 8 - TI / Sistemas e Desenvolvimento - Tarde
Considere o seguinte código em Python:from math import prodstrPow = lambda r: prod(len(r) for x in r)print(strPow('25'*2),"",sep=";")Ao ser executado em um interpretador Python com suporte à função de biblioteca prod, o código acima imprime na saída padrão:
  1. A0;
  2. B40;
  3. C256;
  4. D625;
  5. Eerro.
Revelar gabarito e comentário

GabaritoC — 256;

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”.

Python: lambda com prod e len

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).

  1. 1r = '25'*2 = '2525'
  2. 2len(r) = 4
  3. 3Generator: 4 valores iguais a 4
  4. 4prod = 4×4×4×4 = 256
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

0 não é o resultado; a operação não produz zero.

Alternativa B — ❌ Incorreta

40 seria o resultado se houvesse soma, mas é produto.

Alternativa C — ✅ Correta ⟵ GABARITO

256, conforme explicado.

Alternativa D — ❌ Incorreta

625 = 5⁴, mas a string tem comprimento 4, não 5.

Alternativa E — ❌ Incorreta

Não há erro de execução: o código é válido em Python 3.8+ com prod disponível.

PEGA ESSA DICA!

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