Questão FC331129
Considere o seguinte código em Python: from math import prod strPow = lambda r: prod(len(r) for x in r) print(strPow('25'*2),"",sep=";") Ao ser executado em um interpretador Python
Linguagens de Programação
FGV · 2024
Considere o seguinte código em Python:
from math import prod
strPow = 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:
- 0;
- 40;
- 256;
- 625;
- erro.
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
'25'*2 gera a string '2525', que tem comprimento 4. Portanto, dentro da função, r vale '2525' e len(r) = 4.
A expressão lambda é strPow = lambda r: prod(len(r) for x in r). Aqui há uma expressão geradora: para cada caractere x em r (ou seja, em 4 iterações) produz-se o valor len(r). Note que não se usa len(x), mas sempre len(r), repetido uma vez por cada elemento de r.
A função prod multiplica todos os valores gerados. Logo multiplica 4 por si mesmo 4 vezes, isto é \(4^4=256\). O comando print(strPow('25'*2), "", sep=";") imprime o resultado seguido de uma string vazia separada por ;, produzindo exatamente: 256;.
Conteúdo do catálogo FC Concursos · Atualizado em