1
resposta

[Projeto] Vendas por categoria

import locale
import platform

try:
    if platform.system() == 'Windows':
        locale.setlocale(locale.LC_ALL, 'Portuguese_Brazil.1252')
    else:
        locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8')
except locale.Error:
    print("Erro: locale não suportado no sistema, usando a configuração regional padrão do sistema")
    locale.setlocale(locale.LC_ALL, '')


vendas = { 

    "Eletrônicos": [ 

        {"produto": "Smartphone", "quantidade": 5, "valor_unitario": 2000}, 

        {"produto": "Tablet", "quantidade": 3, "valor_unitario": 1500} 

    ], 

    "Eletrodomésticos": [ 

        {"produto": "Geladeira", "quantidade": 2, "valor_unitario": 3000}, 

        {"produto": "Micro-ondas", "quantidade": 4, "valor_unitario": 800} 

    ], 

    "Livros": [ 

        {"produto": "Livro A", "quantidade": 10, "valor_unitario": 50}, 

        {"produto": "Livro B", "quantidade": 5, "valor_unitario": 100} 
    ] 
} 


def calcular_total_categoria(lista_vendas: list[dict]) -> int:
    total = 0
    for venda in lista_vendas:
        total += venda["quantidade"] * venda["valor_unitario"]
    return total


def exibir_totais_por_categoria(vendas: dict) -> None:
    for categoria, lista_vendas in vendas.items():
        total = calcular_total_categoria(lista_vendas)
        valor_formatado = locale.currency(total, grouping=True)
        print(f'- {categoria}: {valor_formatado}\n')


def main():
    print('Total de vendas por categoria:\n')
    exibir_totais_por_categoria(vendas)


if __name__ == '__main__':
    main()
1 resposta

Olá, Matheus! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de dicionários aninhados para organizar os dados de vendas por categoria, utilizou muito bem o módulo locale para formatar os valores monetários de forma regionalizada e ainda compreendeu a importância do uso de funções para tornar o código mais limpo.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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