From 5298ab4889097a68323c51d7dce0e5773053031b Mon Sep 17 00:00:00 2001 From: Louise Date: Wed, 6 Sep 2023 20:00:33 -0300 Subject: [PATCH] :memo: Adicionado arquivo ativloja.py --- exercicios/para-casa/ativloja.py | 130 +++++++++++++++++++++++++++++++ exercicios/para-sala/loja.py | 72 +++++++++++++++++ 2 files changed, 202 insertions(+) create mode 100644 exercicios/para-casa/ativloja.py create mode 100644 exercicios/para-sala/loja.py diff --git a/exercicios/para-casa/ativloja.py b/exercicios/para-casa/ativloja.py new file mode 100644 index 0000000..7f78266 --- /dev/null +++ b/exercicios/para-casa/ativloja.py @@ -0,0 +1,130 @@ +""" +Todas as funções e variáveis tiveram seus nomes colocados em inglês para ficar melhor caracterizado e de melhor entendimento de que se trata de um CRUD. +Faz parte de uma boa prática ter as variáveis em inglês. +""" + + +product_list = [] + +def menu(): + + while True: + print('\n * MENU LOJA REPROGRAMA *\n') + print('1 - Adicionar') + print('2 - Exibir detalhes') + print('3 - Atualizar') + print('4 - Apagar') + print('5 - Exibir todos') + print('0 - Sair') + + opcao = input('Escolha a opção desejada:\n') + + if opcao == '1': + create_product() + elif opcao == '2': + read_product() + elif opcao == '3': + update_product() + elif opcao == '4': + delete_product() + elif opcao == '5': + list_all() + elif opcao == '0': + break + else: + print('Opção inválida, por favor escolha uma opção do menu') + +""" +Adiciona um novo produto à lista. Ela solicita o nome e o preço do produto au usuário, cria um dicionário com essas informações, gera um ID +para o produto e adiciona ele à lista. Criei um FOR para que antes de adicionar um novo produto, ela verifica se um produto com o mesmo nome já existe. +""" +def create_product(): + name_product = input("Digite o nome do produto:\n") + price_product = input("Digite o preço do produto:\n") + + product = { + "id": generate_id(), + "nome": name_product, + "preço": float(price_product) + } + + for existent_product in product_list: + if existent_product["nome"] == name_product: + print("O produto já existe!") + return + + product_list.append(product) + +""" +Permite ao usuário visualizar os detalhes de um produto com base em seu ID. Ela solicita o ID do produto, +verifica se o número do ID é válido, pesquisa na lista de produtos e exibe os detalhes do produto correspondente. +""" +def read_product(): + id_product = input("Informe o ID do produto para listar:\n") + while True: + try: + float(id_product) + break + except ValueError: + print("O ID informado não é válido.") + id_product = input("Informe o ID do produto para listar:\n") + + try: + for index in range(len(product_list)): + if product_list[index].get("id") == int(id_product): + print("Segue o produto selecionado: ", product_list[index]) + break + else: + print("ID não localizado. Tente novamente.") + except ValueError: + print("ID não localizado. Tente novamente.") + +""" +Gera um ID para o produto adicionado. Se a lista de produtos estiver vazia, o ID é definido como 1. +Caso contrário, ele verifica o maior ID existente na lista de produtos e adiciona 1 a esse valor para criar um novo ID exclusivo e isso é feito por conta da função LAMBDA. +""" +def generate_id(): + if not product_list: + return 1 + + product_list.sort(key=lambda product: product.get("id"), reverse=True) + + new_id = product_list[0].get('id') + 1 + return new_id + +""" + Atualiza o preço de um produto existente com base no seu ID. O usuário fornece o ID do produto que deseja atualizar e, em + seguida, insere o novo preço para o produto. A função pesquisa o produto na lista pelo ID e atualiza o preço. + """ +def update_product(): + id_product = input("Digite o ID do produto para atualizar:\n") + + for index in range(len(product_list)): + if product_list[index].get("id") == int(id_product): + new_value = input("Digite o novo valor do produto:\n") + product_list[index]["preço"] = float(new_value) + print(f"O produto foi atualizado com sucesso! {product_list[index]}") + +""" +Exibe todos os produtos na lista de produtos. Ela itera(passa) por todos os produtos e os imprime na tela. +""" +def list_all(): + for index in range(len(product_list)): + print(f"{product_list[index]}\n") + +""" +Permite ao usuário excluir um produto com base em seu ID. O usuário fornece o ID do produto que deseja excluir, e a função +pesquisa o produto na lista e o remove se for encontrado. +""" +def delete_product(): + id_product = int(input('Insira o ID do produto:\n')) + + for product in product_list: + if product["id"] == id_product: + product_list.remove(product) + print(f'Produto deletado: {product}') + break + else: + print("ID não encontrado na lista de produtos.") + +menu() \ No newline at end of file diff --git a/exercicios/para-sala/loja.py b/exercicios/para-sala/loja.py new file mode 100644 index 0000000..0489e5a --- /dev/null +++ b/exercicios/para-sala/loja.py @@ -0,0 +1,72 @@ +# Quero opção de: +#Adicionar doce +#Exibir detalhe de um doce +#Atualizar doce +#Apagar doces +#Exibir a lista de todos os doces + +lista_produtos = [] + +def menu(): + while True: + print('\n ** MENU LOJA REPROGRAMA **\n') + print('1 - Adicionar') + print('2 - Exibir detalhes') + print('3 - Atualizar') + print('4 - Apagar') + print('5 - Exibir todos') + print('0 - Sair') + + opcao = input('Escolha a opção desejada:\n') + + if opcao == '1': + adicionar_produto() + elif opcao == '2': + print('Opcão exibier detalhes doce') + elif opcao == '3': + atualizar_produto() + elif opcao == '4': + print('Opção apagar doce') + elif opcao == '5': + listar_todos() + elif opcao == '0': + break + else: + print('Opção inválida, por favor ecolha uma opção do menu') + +def adicionar_produto(): + nome_produto = input("Digite o nome do produto:\n") + preco_produto = input("Digite o preço do produto:\n") + + produto = {"id": gerar_id_produto(), + "nome": nome_produto, + "preço": float(preco_produto) + } + + lista_produtos.append(produto) + + print(lista_produtos) + +def gerar_id_produto(): + if len(lista_produtos) == 0: + return 1 + lista_produtos.sort(key=lambda produto: produto.get("id"), reverse=True) + + novo_id = lista_produtos[0].get('id') + 1 + + return novo_id + +def atualizar_produto(): + id_produto = input("Digite o ID do produto para atualizar:\n") + + for index in range(len(lista_produtos)): + if lista_produtos[index].get("id") == int(id_produto): + novo_valor = input("Digite o novo valor do produto:\n") + lista_produtos[index]["preço"] = novo_valor + print(f"O produto foi atualizado com sucesso! {lista_produtos[index]}") + +def listar_todos(): + for index in range(len(lista_produtos)): + print(f"{lista_produtos[index]}\n") + +menu()