Gerenciador de inventário
Orla Oi. O porão de carga está uma bagunça. Estamos ficando sem coisas que não sabemos que estamos ficando sem e pedindo duplicatas de coisas que temos de sobra. Preciso de uma ferramenta de inventário decente. Adicionar itens, atualizar quantidades, salvar tudo em um arquivo entre as sessões. Algo que toda a tripulação consiga realmente usar 📦
O que você vai construir
Commands: add / update / list / remove / quit
> add
Item name: Widget A
Quantity: 100
Price: 2.49
Added.
> list
Widget A qty: 100 £2.49 each total value: £249.00
> update
Item: Widget A
New quantity: 85
Updated.
> quit
Inventory saved to inventory.json.O que você vai precisar
- Classes e objetos — uma classe
Itempara produtos individuais, uma classeInventorypara gerenciar a coleção - Arquivos e exceções — salvar e carregar de JSON, capturar a ausência do arquivo na primeira execução
- Dicionários e listas — os dados subjacentes antes e depois do empacotamento em classes
- Números e aritmética — calcular o valor total por item
- Controle de fluxo e funções — o loop de comandos, uma função por comando
Dicas
Um Item é uma classe com três atributos. Nome, quantidade, preço. O Inventory gerencia uma lista de Items e expõe métodos: adicionar, atualizar, remover, listar.
Salve ao sair, carregue ao iniciar. Envolva o carregamento do arquivo em um try/except para que a ausência do arquivo na primeira execução não quebre o script — apenas comece com um inventário vazio.
O valor total é uma preocupação de exibição. Calcule quantity × price na hora de imprimir. Não precisa armazenar como atributo, sempre será derivável.
Indo além
Quando a ferramenta principal estiver funcionando:
- Alertas de estoque baixo. Ao exibir a lista, sinalize qualquer item cuja quantidade caia abaixo de um limite que você definir.
- Busca. Adicione um comando
searchque encontre itens pelo nome, com correspondência parcial. - Exportar relatório. Adicione um comando
exportque escreva um resumo em texto simples do estoque atual em um arquivo.txt.

