Crie um procedimento chamado listarPromocoesCaros que recebe como parâmetro a lista de produtos cadastrados e que deve apresentar todos os dados de produtos em promoção que estejam acima da média de preços dos produtos promocionais em ordem alfabética dos nomes do produtos ( 2,0 pontos)
Passo 1
Beleza, vamos resolver esse exercício juntos! A gente precisa criar um procedimento chamado
listarPromocoesCaros
. Esse procedimento vai receber uma lista de produtos e vai mostrar todos os produtos que estão em promoção e que têm preço acima da média dos preços dos produtos que estão em promoção. Além disso, a lista final vai estar organizada em ordem alfabética pelo nome dos produtos. Para isso, vamos precisar entender como filtrar os produtos em promoção, calcular a média dos preços desses produtos e depois ordenar a lista resultante.Passo 2
Primeiro, vamos identificar quais produtos estão em promoção. Isso significa que, dentro da lista de produtos, vamos selecionar apenas aqueles que têm a flag de promoção ativa. Pra fazer isso, vamos percorrer cada produto da lista e verificar se ele está em promoção.
Passo 3
Depois de filtrar os produtos em promoção, precisamos calcular a média dos preços desses produtos. A média é calculada somando todos os preços dos produtos em promoção e dividindo pelo número total desses produtos. A fórmula da média é:
Passo 4
Com a média calculada, vamos agora selecionar os produtos que têm preço acima dessa média. Ou seja, dentro dos produtos que estão em promoção, vamos pegar só aqueles cujo preço é maior que a média que acabamos de calcular.
Passo 5
Agora que temos os produtos em promoção e que são mais caros que a média, vamos organizar essa lista em ordem alfabética pelo nome dos produtos. Isso facilita na hora de visualizar e entender quais produtos se destacam.
Passo 6
Finalmente, vamos apresentar todos os dados desses produtos selecionados. Isso pode incluir informações como nome, preço, descrição e qualquer outro dado relevante que esteja cadastrado na lista de produtos.
Passo 7
produtos_promocao = [produto for produto in lista_produtos if produto[‘em_promocao’]]
# Verificar se existem produtos em promoção para evitar divisão por zero
if not produtos_promocao:
print("Não há produtos em promoção.")
return
Passo 8
total_preco = sum(produto[‘preco’] for produto in produtos_promocao)
quantidade = len(produtos_promocao)
media_preco = total_preco / quantidade
quantidade = len(produtos_promocao)
media_preco = total_preco / quantidade
Passo 9
produtos_acima_media = [produto for produto in produtos_promocao if produto[‘preco’] > media_preco]
Passo 10
produtos_ordenados = sorted(produtos_acima_media, key=lambda x: x[‘nome’])
Passo 11
for produto in produtos_ordenados:
print(f"Nome: {produto[‘nome’]}, Preço: R${produto[‘preco’]:.2f}, Descrição: {produto[‘descricao’]}")
print(f"Nome: {produto[‘nome’]}, Preço: R${produto[‘preco’]:.2f}, Descrição: {produto[‘descricao’]}")
Resposta
def listarPromocoesCaros(lista_produtos):