Questão nº 17
Questão de Tecnologia da Informação · FGV CVM 2024 (nº 17)
Considere o seguinte código em Python:
```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:
- A0;
- B40;
- C256; (alternativa correta)
- D625;
- Eerro.
Resposta comentada
Gabarito Alternativa C
A função prod (do módulo math) calcula o produto de todos os números em uma sequência. Ao iterar sobre uma string, o Python processa cada caractere individualmente, e a função len() retorna o número de caracteres da string.
(A) Incorreta: O resultado de um produto só seria zero se um dos fatores fosse zero, o que não ocorre aqui.
(B) Incorreta: Não há nenhuma operação que resulte em 40 com os valores envolvidos.
(C) Correta: Primeiro, '25'*2 resulta na string '2525'. A função strPow recebe r = '2525'. O len(r) é 4. A expressão geradora (len(r) for x in r) cria uma sequência onde, para cada caractere x em '2525', o valor len(r) (que é 4) é produzido. Como '2525' tem 4 caracteres, a sequência passada para prod será (4, 4, 4, 4). O prod calcula . A impressão final é 256;.
(D) Incorreta: Esta é a armadilha mais tentadora. O valor 625 seria o resultado de . A armadilha aqui é confundir o conteúdo da string ('25') com um valor numérico a ser operado, ou interpretar erroneamente a lógica da função strPow. O código não eleva 25 ao quadrado; ele calcula o produto do comprimento da string repetido pelo número de caracteres da string.
(E) Incorreta: O código é sintaticamente válido e todas as funções e operações são suportadas pelo Python.
Fonte: FGV CVM 2024 Analista CVM - TI Sistemas e Desenvolvimento (Perfil 8) (Caderno Tipo 1). Reproduzida para fins de estudo.