Analise o trecho código Python a seguir. AREA = [3.7, 5.356, 4.9061, 4.32092, 9.038758, 32.5434846] resultado = list(map(round, AREA, range(1,5))) print(resultado) O valor impresso é
- A)[4.0, 5.36, 4.906].
Errada, porque traz apenas os tres primeiros valores e ignora que o map tambem processa o quarto elemento de AREA.
- B)[3.7, 5.36, 4.906, 4.3209].
Certa, pois o map para no menor iteravel, produz 4 resultados, e round arredonda cada numero para 1, 2, 3 e 4 casas decimais.
- C)[3.7, 5.36, 4.906, 4.3209, 9.03876].
Errada, porque inclui cinco elementos, mas o range(1,5) so fornece quatro valores e o map nao vai alem disso.
- D)[4.0, 5.36, 4.906, 4.3209, 9.03876, 32.54348].
Errada, porque supoe seis resultados e ainda usa arredondamentos que nao correspondem aos valores de range(1,5).
Gabarito: B
A funcao map aplica uma mesma funcao sobre varios iteraveis ao mesmo tempo. Aqui, ela chama round para cada valor de AREA e para cada valor de range(1,5), que fornece 1, 2, 3 e 4. Como o map para quando acaba o menor iteravel, ele gera apenas 4 resultados, nao 6. O detalhe importante e que round(x, n) arredonda x para n casas decimais. Entao temos: 3.7 com 1 casa continua 3.7, 5.356 com 2 casas vira 5.36, 4.9061 com 3 casas vira 4.906 e 4.32092 com 4 casas vira 4.3209. Moral da historia: o tamanho do resultado nao segue o tamanho de AREA, e sim o do menor iteravel passado ao map. Python faz exatamente isso, sem drama e sem inventar casas decimais extras. Por isso, o valor impresso corresponde ao conjunto com esses quatro numeros arredondados, que e a alternativa B.