Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Projeto Monitorando vendas no comércio

Preciso admitir que, no começo, meu código era bem básico, só atendia o que o exercício pedia. Mas aí, curiosa que sou, fui dar uma espiadinha no fórum. Resultado? Abri uns posts, vi uns feedbacks cheios de dicas bacanas e pensei: "Por que não complicar minha vida um pouquinho mais?".
Resultado: Demorei um tempão, o código ficou parecendo uma novela com tantas linhas, e eu tenho certeza que dava pra fazer algo mais enxuto. Mas foi o que teve pra hoje kkkkkk

def monitorar_vendas_multiplos_produtos(vendas):
    if not vendas:
        print("Nenhum produto registrado para vendas.")
        return

    maior_venda_quantidade = -1
    produtos_maior_venda = []

    for produto, quantidade in vendas.items():
        if quantidade > maior_venda_quantidade:
            maior_venda_quantidade = quantidade
            produtos_maior_venda = [produto]
        elif quantidade == maior_venda_quantidade:
            produtos_maior_venda.append(produto)

    if len(produtos_maior_venda) == len(vendas):
        print("Todos os produtos tiveram a mesma quantidade de vendas.")
    elif len(produtos_maior_venda) == 1:
        print(f"O produto com maior venda foi: {produtos_maior_venda[0]} com {maior_venda_quantidade} unidades vendidas.")
    else:
        print(f"Os produtos com maior venda foram: {', '.join(produtos_maior_venda)} com {maior_venda_quantidade} unidades vendidas cada.")

# Exemplo de uso:

vendas_produtos = {}

while True:
    produto = input("Digite o nome do produto (ou 'fim' para encerrar): ").strip()
    if produto.lower() == 'fim':
        break
    
    while True:
        try:
            quantidade = int(input(f"Digite a quantidade vendida de {produto}: "))
            vendas_produtos[produto] = quantidade
            break
        except ValueError:
            print("Entrada inválida. Por favor, digite um número inteiro.")

monitorar_vendas_multiplos_produtos(vendas_produtos)

Exemplo de output:

Digite o nome do produto (ou 'fim' para encerrar): banana
Digite a quantidade vendida de banana: 5
Digite o nome do produto (ou 'fim' para encerrar): maçã
Digite a quantidade vendida de maçã: 3
Digite o nome do produto (ou 'fim' para encerrar): fim
O produto com maior venda foi: banana com 5 unidades vendidas.

1 resposta
solução!

Olá, Laís! Como vai?

Gostei bastante da sua iniciativa de ir além do que a atividade pedia. Você não apenas encontrou o produto com maior venda, como também tratou situações importantes, como empate entre produtos, ausência de registros e validação de entrada com try e except. Isso mostra curiosidade e preocupação em tornar o programa mais completo, algo muito valioso no aprendizado.

Uma dica interessante para o futuro é usar a função max() para encontrar o maior valor de forma mais enxuta. Veja este exemplo:


vendas = {"banana": 5, "maca": 3, "uva": 4}

maior_venda = max(vendas.values())
print(maior_venda)

Nesse exemplo, o código encontra a maior quantidade de vendas registrada no dicionário. Mesmo assim, sua solução foi muito interessante porque trabalhou diferentes cenários e reforçou a prática com condicionais e laços de repetição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!