diff --git a/exercicios/para-casa/README.md b/exercicios/para-casa/README.md index 69be0bf..d5e1c51 100644 --- a/exercicios/para-casa/README.md +++ b/exercicios/para-casa/README.md @@ -12,7 +12,15 @@ Como Desafio para casa você vai precisar fazer o seguinte: - Ex.: Usuário precisa digitar um valor X mas ele acaba digitando Y. Então você deve auxiliar o usuário onde ele cometeu esse erro e o que ele precisa fazer para corrigir. - Ex2.: O usuário digitou um ID de um produto que não existe, como o programa deveria se comportar? +<<<<<<< HEAD +- Escolher um produto e adicionar ele a um carrinho +- O cliente vai poder escolher um produto pelo seu id, esses produtos são os produtos da LOJA e também escolher a quantidade do produto desejado +- Se o cliente mudar de ideia, ele poderá excluir um produto do carrinho +- O cliente poderá , a qualquer momento , ver o TOTAL dos itens do seu carrinho +- O cliente poderá finalizar a compra. Nesse momento , deve ser gerado um número do pedido e o total da compra. Para assim ele finalizar seu carrinho. +======= **Importante:** Você tem a liberdade de fazer qualquer alteração no código que ache pertinente, mas lembre-se de sempre justificar. +>>>>>>> 71ccbf2148d163eadc1fad54feac13c256161c4e Boa sorte! --- diff --git a/exercicios/para-casa/projeto-guiado-I.py b/exercicios/para-casa/projeto-guiado-I.py new file mode 100644 index 0000000..d222d93 --- /dev/null +++ b/exercicios/para-casa/projeto-guiado-I.py @@ -0,0 +1,90 @@ +class Produto: + def __init__(self, id, nome, preco): + self.id = id + self.nome = nome + self.preco = preco + +class Carrinho: + def __init__(self): + self.items = {} + + def adicionar_item(self, produto, quantidade): + if produto.id in self.items: + self.items[produto.id] += quantidade + else: + self.items[produto.id] = quantidade + + def remover_item(self, id): + if id in self.items: + del self.items[id] + + def calcular_total(self, catalogo_produtos): + total = 0 + for id, quantidade in self.items.items(): + produto = catalogo_produtos[id] + total += produto.preco * quantidade + return total + +def exibir_catalogo(catalogo_produtos): + print("Catálogo de Produtos:") + for produto in catalogo_produtos.values(): + print(f"{produto.id}: {produto.nome} - R${produto.preco:.2f}") + +def main(): + + catalogo_produtos = { + 1: Produto(1, "Base", 10.99), + 2: Produto(2, "Batom", 5.49), + 3: Produto(3, "Rímel", 7.99), + } + + carrinho = Carrinho() + + while True: + print("\nMenu:") + print("1. Adicionar produto ao carrinho") + print("2. Remover produto do carrinho") + print("3. Ver total do carrinho") + print("4. Finalizar compra") + print("5. Sair") + + opcao = input("Escolha uma opção (1-5): ") + + if opcao == "1": + exibir_catalogo(catalogo_produtos) + id = int(input("Digite o id do produto: ")) + quantidade = int(input("Digite a quantidade desejada: ")) + produto = catalogo_produtos.get(id) + if produto: + carrinho.adicionar_item(produto, quantidade) + print(f"{quantidade} {produto.nome}(s) adicionado(s) ao carrinho.") + else: + print("Produto não encontrado.") + + elif opcao == "2": + id = int(input("Digite o id do produto a ser removido: ")) + carrinho.remover_item(id) + print("Produto removido do carrinho.") + + elif opcao == "3": + total = carrinho.calcular_total(catalogo_produtos) + print(f"Total do carrinho: R${total:.2f}") + + elif opcao == "4": + total = carrinho.calcular_total(catalogo_produtos) + if total > 0: + print(f"Compra finalizada! Número do pedido: {hash(carrinho)}") + print(f"Total da compra: R${total:.2f}") + break + else: + print("Carrinho vazio. Adicione produtos antes de finalizar a compra.") + + elif opcao == "5": + print("Saindo do programa. Obrigado!") + break + + else: + print("Opção inválida. Tente novamente.") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/exercicios/para-casa/projeto-guiado-exercicios b/exercicios/para-casa/projeto-guiado-exercicios new file mode 100644 index 0000000..90f6981 --- /dev/null +++ b/exercicios/para-casa/projeto-guiado-exercicios @@ -0,0 +1,77 @@ +# Deve conseguir adicionar doces novos ao menu +# Deve ser possível mostrar detalhes de um produto pelo seu index +# Deve listar todos os itens do menu +# Deve ser possível alterar o preço de um certo produto +# Deve apagar um produto do menu + +# 1. Criar o menu + +doces_cadastrados = [] + +def menu (): + # adicionar doce + # detalhar doce + # listar todos os itens + # alterar preço + # apagar produto + while True: + + print("\n ** MENU LOJA MAY ** ") + print("1 - Adicionar produto") + print("2 - Exibir detalhes de um produto") + print("3 - Atualizar informações de um produto") + print("4 - Remover produto") + print("5 - Listar todos os produtos") + print("0 - Sair") + + opcao = input("Digite a opção desejada:\n") + + + if opcao == "1": + adicionar_produto() + + elif opcao == "2": + print("Opção exibir detalhes de um produto.") + + elif opcao == "3": + print("Opção atualizar informações de um produto.") + + elif opcao == "4": + print("Opção remover produto.") + + elif opcao == "5": + print("Opção listar todos os produtos.") + + elif opcao == "0": + print("Sair") + break + + else: + print ("Opcão inválida. Por favor, digite uma das opções informadas.") + + +def adicionar_produto(): + nome_produto = input("Informe o nome do produto que deseja adicionar:\n") + preco_produto = input("Informe o preço do produto que deseja adicionar:\n") + + produto = { + "id": gerar_id_produto(), + "nome": nome_produto, + "preço": float(preco_produto), + } + + doces_cadastrados.append(produto) + print(doces_cadastrados) + + +def gerar_id_produto(): + novo_id = 1 + if len(doces_cadastrados) == 0: + return 1 + + doces_cadastrados.sort(key=id, reverse=True) + novo_id = doces_cadastrados[0].get("id") + 1 + return novo_id + + +menu() \ No newline at end of file diff --git a/exercicios/para-sala/README.md b/exercicios/para-sala/README.md index 4c29af0..c107cb9 100644 --- a/exercicios/para-sala/README.md +++ b/exercicios/para-sala/README.md @@ -6,13 +6,13 @@ ela decide te chamar para fazer isso pra ela. Um sistema simples vai servir, as - Deve ser escrito em python - Deve conseguir adicionar doces novos ao menu -- Deve ser possível mostrar detalhes de um produto pelo seu IDENTIFICADOR +- Deve ser possível mostrar detalhes de um produto pelo seu id - Deve listar todos os itens do menu - Deve ser possível ALTERAR O PREÇO de um certo protudo - Deve apagar um produto do menu -**Lembre-se que a Mayhhara é sua primeira cliente. Precisamos causar uma boa impressão e mostrar o n -osso trabalho** +**Lembre-se que a Mayhhara é sua primeira cliente. Precisamos causar uma boa impressão e mostrar +o nosso trabalho** --- Terminou o exercício? Dá uma olhada nessa checklist e confere se tá tudo certinho, combinado?! diff --git a/exercicios/para-sala/loja.py b/exercicios/para-sala/loja.py index f3905ed..e69de29 100644 --- a/exercicios/para-sala/loja.py +++ b/exercicios/para-sala/loja.py @@ -1,76 +0,0 @@ -# Quero opção de: -# Adicionar doce -# Exibir detalhe de um doce -# Atualizar doce -# Apagar doces -# Exibir a lista de todos os doces -import time - -lista_produtos = [{'id': 3, 'nome': 'asdasdas', 'preço': 32.0}, {'id': 2, 'nome': 'asd', 'preço': 2.0}, {'id': 1, 'nome': 'a', 'preço': 1.0}, {'id': 4, 'nome': '23123', 'preço': 13123.0}] - -id_produto = 1 -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("opcao exibir detalhes doce") - elif opcao == "3": - atualizar_produto() - elif opcao == "4": - print("opcao apagar doce") - elif opcao == "5": - listar_todos() - elif opcao == "0": - break - else: - print("Opção inválida, por favor escolha uma opção do menu") - -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 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 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"] = float(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()