Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 130 additions & 0 deletions exercicios/para-casa/ativloja.py
Original file line number Diff line number Diff line change
@@ -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()
66 changes: 66 additions & 0 deletions exercicios/para-sala/loja.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,53 @@
# Quero opção de:
<<<<<<< HEAD
#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)
=======
# Adicionar doce
# Exibir detalhe de um doce
# Atualizar doce
Expand Down Expand Up @@ -35,11 +84,18 @@ def menu():
break
else:
print("Opção invÔlida, por favor escolha uma opção do menu")
>>>>>>> 71ccbf2148d163eadc1fad54feac13c256161c4e

def gerar_id_produto():
if len(lista_produtos) == 0:
return 1
lista_produtos.sort(key=lambda produto: produto.get("id"), reverse=True)
<<<<<<< HEAD

novo_id = lista_produtos[0].get('id') + 1

return novo_id
=======
novo_id = lista_produtos[0].get("id") + 1

return novo_id
Expand All @@ -57,20 +113,30 @@ def adicionar_produto():
print(lista_produtos)


>>>>>>> 71ccbf2148d163eadc1fad54feac13c256161c4e

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")
<<<<<<< HEAD
lista_produtos[index]["preƧo"] = novo_valor
print(f"O produto foi atualizado com sucesso! {lista_produtos[index]}")

=======
lista_produtos[index]["preƧo"] = float(novo_valor)
print(f"O produto foi atualizado com sucesso! {lista_produtos[index]}")


>>>>>>> 71ccbf2148d163eadc1fad54feac13c256161c4e
def listar_todos():
for index in range(len(lista_produtos)):
print(f"{lista_produtos[index]}\n")

<<<<<<< HEAD
=======

>>>>>>> 71ccbf2148d163eadc1fad54feac13c256161c4e
menu()