-
Notifications
You must be signed in to change notification settings - Fork 40
projeto semana 5 #28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
DamarisSantos
wants to merge
1
commit into
reprograma:main
Choose a base branch
from
DamarisSantos:main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
projeto semana 5 #28
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,102 @@ | ||
| # Quero opção de: | ||
| # Adicionar doce | ||
| # Exibir detalhe de um doce | ||
| # Atualizar doce | ||
| # Apagar doces | ||
| # Exibir a lista de todos os doces | ||
| import time | ||
|
|
||
| # Mudei o nome dos doces para os doces que eu mais gosto e que são mais comuns. | ||
| lista_produtos = [{'id': 1, 'nome': 'Pudim', 'preço': 7.0}, {'id': 2, 'nome': 'Brigadeiro', 'preço': 2.0}, {'id': 3, 'nome': 'Brownie', 'preço': 10.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() #retirei a lista de produtos porque estava dando erro no código | ||
| #atualizar_produto([lista_produtos]) | ||
| elif opcao == "4": | ||
| apagar_produto() | ||
| elif opcao == "5": | ||
| listar_todos() | ||
| elif opcao == "0": | ||
| break | ||
| else: | ||
| print("Opção inválida, por favor escolha uma opção do menu") | ||
|
|
||
| #Retirei o key e coloquei o type como foi orientado, porém dá erro quando tento incluir mais doces não roda. Então preferi manter assim. | ||
| 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 | ||
|
|
||
| # aqui foi adicionada uma função para caso o usuário ponha um número no lugar de nome apareça uma mensagem de erro | ||
| # # realizado em grupo de estudos | ||
| def adicionar_produto(): | ||
| nome_produto = input("Digite o nome do produto:\n") | ||
| while any(char.isdigit() for char in nome_produto): | ||
| print("O nome do produto não pode conter números. Por favor, insira um novo nome.") | ||
| nome_produto = input("Digite o nome do produto:\n") | ||
| preco_produto = float(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) | ||
|
|
||
| # foi necessário incluir try e except, pois quando eu testava com string estava dando erro | ||
| def atualizar_produto(): | ||
| try: | ||
| id_produto = int(input('Digite o ID do produto para atualizar:\n')) | ||
| for produto in lista_produtos: | ||
| if produto.get('id') == id_produto: | ||
| novo_id = input('Digite o novo nome do produto:\n') | ||
| novo_preco = float(input('Digite o novo preço do produto:\n')) | ||
| produto['nome'] = novo_id | ||
| produto['preço'] = novo_preco | ||
| print ('Produto atualizado com sucesso!\n') | ||
| print (f'(Lista atualizada:\n {lista_produtos})') | ||
| return | ||
| print ('Produto não encontrado. Digite um ID de produto válido') | ||
| except Exception: | ||
| print ('Voçê precisa inserir um número de ID de produto válido.') | ||
|
|
||
| def listar_todos(): | ||
| for index in range(len(lista_produtos)): | ||
| print(f'{lista_produtos[index]}\n') | ||
|
|
||
| # No print eu quis já deixar mostrando a lista com a alteração. | ||
| def apagar_produto(): | ||
| try: | ||
| id_produto= int(input("Informe o ID do produto que deseja excluir:\n")) | ||
| for produto in lista_produtos: | ||
| if produto.get('id')==int(id_produto): | ||
| lista_produtos.remove(produto) | ||
| print('Produto deletado com sucesso!') | ||
| print(f'Lista atualizada:{lista_produtos}') | ||
| return | ||
| print('Produto não encontrado, digite um ID de produto válido.') | ||
| except Exception: | ||
| print('Voçê precisa inserir um número de ID de produto válido.') | ||
|
|
||
|
|
||
|
|
||
| menu() | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,79 @@ | ||
| # Quero opção de: | ||
| # Adicionar doce | ||
| # Exibir detalhes de um doce | ||
| # Atualizar doce | ||
| # Apagar doces | ||
| # Exibir a lista de todos os doces | ||
|
|
||
| lista_produtos = [ | ||
| {'id': 2, 'nome': 'novo produto2 ', 'preço': 3.0}, | ||
| {'id': 3, 'nome': 'novo produto3 ', 'preço': 4.0}, | ||
| {'id': 1, 'nome': 'novo produto1 ', 'preço': 3.0}, | ||
| ] | ||
|
|
||
| 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('Opção exibir detalhes doce') | ||
| elif opcao == '3': | ||
| atualizar_produto() | ||
| elif opcao == '4': | ||
| print('Opção apagar doce') | ||
| elif opcao == '5': | ||
| print('Opção exibir todos os doces') | ||
| elif opcao == '0': | ||
| print('Sair') | ||
| break | ||
| else: | ||
| print('Opção inválida, por favor escolha uma opção do menu') | ||
|
|
||
| #dicionário dict | ||
| 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=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('') == 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() |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
atenção quando fizer algo desse tipo. voce declarou a variavel como "novo_id" mas na verdade é "novo_nome"
❤️