Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

vendas por categoria - RESPOSTA

def exibir_subtitulo(texto):
    linha = "-" * (len(texto) + 4)
    print("\n" + texto)
    print(linha)


produtos = {
    "Eletrônicos": {
        "Smartphone": {"preco": 2500.00, "quantidade": 10},
        "Tablet": {"preco": 1800.00, "quantidade": 5},
        "Computador": {"preco": 3200.00, "quantidade": 11},
        "Iphone": {"preco": 5700.00, "quantidade": 12}

    },
    "Livros": {
        "Harry Potter": {"preco": 79.90, "quantidade": 20},
        "O Senhor dos Anéis": {"preco": 89.90, "quantidade": 20},
        "Crepusculo": {"preco": 67.90, "quantidade": 15},
        "O Iluminado": {"preco": 100.90, "quantidade": 40}
        
    },
        "Eletrodomesticos": {
        "TV": {"preco": 5100.00, "quantidade": 30},
        "Máquina de Lavar": {"preco": 2200.00, "quantidade": 12},
        "Micro-Ondas": {"preco": 2200.00, "quantidade": 12},
        "Geladeira": {"preco": 2200.00, "quantidade": 12},
    },
        "Roupas, Quarto e Banho": {
        "Sapatenis": {"preco": 210.00, "quantidade": 25},
        "Terno": {"preco": 1800.00, "quantidade": 5},
        "Vestido": {"preco": 2200.00, "quantidade": 30},
        "Jogo de toalha rosto e banho": {"preco": 200.00, "quantidade": 10},
        "Edredom -JOGO COMPLETO-": {"preco": 800.00, "quantidade": 5}
    }

}

while True:
    exibir_subtitulo("LOJAS MARRETEROS UNITED - Controle de Produtos e Vendas")
    print("1 - Ver todos os produtos")
    print("2 - Ver produtos por categoria")
    print("3 - Realizar venda")
    print("4 - Cadastrar novo produto")
    print("5 - Sair")

    opcao = input("Escolha uma opção: ")

    # - Ver todos os produtos
    if opcao == "1":
        for categoria, itens in produtos.items():
            print(f"\n{categoria}:")
            for nome, dados in itens.items():
                print(f"- {nome} | R$ {dados['preco']} | Qtde: {dados['quantidade']}")


    # - Ver produtos por categoria
    elif opcao == "2":
        categoria = input("Digite a categoria: ")
        if categoria in produtos:
            for nome, dados in produtos[categoria].items():
                print(f"- {nome} | R$ {dados['preco']} | Qtde: {dados['quantidade']}")
        else:
            print("Categoria não encontrada.")


    # - Realizar venda
    elif opcao == "3":
        categoria = input("Categoria do produto: ")
        nome = input("Produto: ")

        if categoria in produtos and nome in produtos[categoria]:
            qtd = int(input("Quantidade vendida: "))
            if qtd <= 0 or qtd > produtos[categoria][nome]["quantidade"]:
                print("Quantidade inválida.")
            else:
                produtos[categoria][nome]["quantidade"] -= qtd
                total = qtd * produtos[categoria][nome]["preco"]
                print(f"Venda realizada. Total: R$ {total:.2f}")
        else:
            print("Produto não encontrado.")


    # - Cadastrar novo produto
    elif opcao == "4":
        categoria = input("Categoria: ")
        nome = input("Nome do produto: ")
        preco = float(input("Preço: "))
        quantidade = int(input("Quantidade: "))

        produtos.setdefault(categoria, {})
        produtos[categoria][nome] = {"preco": preco, "quantidade": quantidade}
        print("Produto cadastrado com sucesso.")


    # - Sair
    elif opcao == "5":
        print("Sistema encerrado")
        break

    else:
        print("Opção inválida.")
1 resposta
solução!

Ei! Tudo bem, Luciano?

Parabéns pelo trabalho! Seu código está bem estruturado, organizado por categorias e faz um ótimo uso de dicionários aninhados.As validações fazem sentido e as funcionalidades atendem muito bem ao objetivo da atividade.

Dá para ver evolução na lógica e na organização do código. Excelente entrega!

Qualquer dúvida que surgir, conte conosco por aqui.

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