1
resposta

[Projeto] 04 Verificando itens na despensa

import os
import json

estoque = []
ARQUIVO_ESTOQUE = "estoque.json"


def carregar_dados():
    global estoque
    if os.path.exists(ARQUIVO_ESTOQUE):
        try:
            with open(ARQUIVO_ESTOQUE, "r", encoding="utf-8") as f:
                estoque = json.load(f)
        except Exception:
            estoque = []


def salvar_dados():
    try:
        with open(ARQUIVO_ESTOQUE, "w", encoding="utf-8") as f:
            json.dump(estoque, f, indent=4, ensure_ascii=False)
    except Exception as e:
        print(f"Erro ao salvar: {e}")


def cabecalho(texto, char="-", largura=50, limpar=True):
    if limpar:
        os.system("cls" if os.name == "nt" else "clear")
    print(char * largura)
    print(texto.center(largura))
    print(char * largura)


def menu():
    while True:
        cabecalho("Menu", "=")
        print("1. Cadastrar Item")
        print("2. Listar Itens")
        print("3. Verificar Item")
        print("4. Sair")
        escolha_menu()


def cadastrar_item():
    cabecalho("Cadastrar Item", "-")
    nome = input("Digite o nome do item: ")
    try:
        quantidade = int(input("Digite a quantidade do item: "))
        item = {"nome": nome, "quantidade": quantidade}
        estoque.append(item)
        salvar_dados()
        print("\nItem cadastrado e salvo com sucesso!")
    except ValueError:
        print("Erro: Digite um número válido para a quantidade.")

    input("Pressione Enter para continuar...")


def listar_itens():
    cabecalho("Itens no Estoque", "-")
    if not estoque:
        print("Não há itens no estoque.")
    else:
        for item in estoque:
            print(f"Nome: {item['nome']} | Quantidade: {item['quantidade']}")
            print("-" * 30)
    input("Pressione Enter para continuar...")


def verificar_item():
    cabecalho("Verificar Item", "-")
    busca = input("Digite o nome do item para buscar: ").lower()
    encontrado = False
    for item in estoque:
        if busca in item["nome"].lower():
            print(f"-> Encontrado: {item['nome']} (Qtd: {item['quantidade']})")
            encontrado = True

    if not encontrado:
        print(f"Item '{busca}' não localizado. Precisa ser comprado e/ou cadastrado.")
    input("\nPressione Enter para continuar...")


def sair():
    salvar_dados()
    os.system("cls" if os.name == "nt" else "clear")
    print("Dados salvos. Programa Fechado.")
    exit()


def escolha_menu():
    try:
        opcao = int(input("Escolha uma opção: "))
        if opcao == 1:
            cadastrar_item()
        elif opcao == 2:
            listar_itens()
        elif opcao == 3:
            verificar_item()
        elif opcao == 4:
            sair()
        else:
            print("Opção inválida.")
    except ValueError:
        print("Por favor, digite um número.")


def main():
    carregar_dados()
    menu()


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

Oi, Daniel, tudo bem?

Meus parabéns pela apresentação da sua resolução da atividade e por compartilhar o seu código aqui com a gente! Achei sensacional como você foi além do esperado.

A implementação da persistência de dados utilizando o módulo json e a limpeza do terminal com o módulo os deixaram o seu programa muito bacana e com uma carinha bem profissional. Iniciativas como a sua possuem total destaque no mercado de trabalho e além disso, reforçam o aprendizado da tecnologia como um todo.

Continue com essa dedicação!

Bons estudos!

Sucesso

Imagem da comunidade