Questão nº 37
Questão de Tecnologia da Informação · FGV ALEP 2024 (nº 37)
O trecho a seguir, em Python, calcula a média de preços de estoques de diversas lojas.

Assinale a opção que indica o código correto para fazer este cálculo.
- A
(alternativa correta) - B

- C

- D

- E

Resposta comentada
Gabarito Alternativa A
Para calcular a média geral de um conjunto de valores agrupados em diferentes categorias (neste caso, preços em diferentes lojas), é fundamental somar todos os valores individuais e dividir pelo número total de valores individuais.
(A) Correta: Este código inicializa `total_precos` e `quantidade_total_itens` em zero. Ele usa um loop aninhado que percorre cada loja e, para cada loja, itera sobre cada preço individualmente. Assim, `total_precos` acumula a soma de todos os preços, e `quantidade_total_itens` conta cada item. A `media_geral` é então calculada dividindo a soma total pelo número total de itens, o método correto para a média geral.
(B) Incorreta: O código soma corretamente todos os preços, mas divide essa soma pela `quantidade_lojas` (número de lojas), e não pelo número total de itens. Isso resulta na soma total dos preços dividida pelo número de lojas, o que não é a média geral dos itens.
(C) Incorreta: Similar à alternativa B, este código calcula a soma dos preços por loja e os armazena em uma lista. No final, ele soma esses totais (obtendo a soma total de todos os preços) mas divide pelo `len(total_precos_por_loja)`, que é o número de lojas. O erro é o mesmo: dividir pelo número de lojas em vez do número total de itens.
(D) Incorreta: (Armadilha da banca) Este é o distrator mais tentador. O código calcula a média dos preços para cada loja e depois calcula a média dessas médias das lojas. Este método está incorreto para a média geral de todos os itens, a menos que cada loja tivesse exatamente o mesmo número de itens. Se as lojas têm quantidades diferentes de itens, a média das médias não representa a média geral ponderada de todos os itens.
(E) Incorreta: Embora este código seja funcionalmente correto e produza o mesmo resultado que a alternativa A, ele não é a opção indicada como correta pelo gabarito. A alternativa A representa uma abordagem mais explícita e granular ao iterar sobre cada preço individualmente, enquanto esta alternativa utiliza funções agregadoras (`sum`, `len`) para cada sublista, o que, embora eficiente, pode não ser a forma de "cálculo" esperada no contexto da questão que busca a iteração mais fundamental.
Fonte: FGV ALEP 2024 Analista Legislativo - Desenvolvedor de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.