# produto do estoque 14
estoque = {"notebook": [1000, 5.300],
"teclado": [500, 500],
"mause": [200, 300],
"monitor": [100, 800]
}
total = 0
print("Vendas:\n")
while True:
produto = input("Nome do produto (fim para sair):")
if produto == "fim":
break
if produto in estoque:
quantidade = int(input("Quantidade:"))
if quantidade <= estoque[produto][0]:
preço = estoque[produto][1]
custo = preço * quantidade
print(f"{produto:12s}: {quantidade:3d} x {preço:6.2f} = {custo:6.2f}")
estoque[produto][0] -= quantidade
total += custo
else:
print("Quantidade solicitada não disponível")
else:
print("Nome de produto inválido")
print(f" Custo total: {total:21.2f}\n")
print("Estoque:\n")
for chave, dados in estoque.items():
print("Descrição: ", chave)
print("Quantidade: ", dados[0])
print(f"Preço: {dados[1]:6.2f}\n")
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (2)
E como um código foi postado, quero aproveitar para fazer um code review.
Primeiramente, o código está bem escrito e organizado. Eu só acrescentaria umas linhas em branco para delimitar o fim de uma parte, e que na sequência inicia outra sequência de código com outra finalidade. No caso começou com definições de valores (variáveis) que serão os dados do programa, foi para uma interação com o usuário, e no final apresentou um resumo ou finalização. Isso pode ajudar a ir mais rápido para a parte desejada do código. Mas é apenas uma opção pessoal.
Uma coisa que dificultou a leitura do código foi a utilização de listas para guardar os valores da quantidade e o preço logo na primeira variável, não é intuitivo que são dois dados diferentes, e a utilização fica um pouco confusa (qual a diferença entre
estoque[produto][0]
eestoque[produto][1]
sem olhar o restante do código?), além de que da a ideia de que poderia ter mais do que dois valores nessa lista. Uma solução mais simples poderia ser a utilização de tuplas, ai temos uma quantidade fixa de itens e uma tupla já traz uma ideia de que podem ser valores diferentes, tanto que em algumas linguagens todos os valores de uma lista precisam ser do mesmo tipo, enquanto de uma tupla pode haver tipos diferentes. Mas ainda ficam sendo chamado de0
e1
, para isso Python tem as namedtuple, onde é possível dar um nome para cada item da tupla, porém como tuplas em Python são imutáveis, toda hora que alterar a quantidade em estoque teria que recriar toda a tupla, para melhorar isso existem as dataclass assim daria para alterar a quantidade diretamente. Porém isso são recursos mais avançados do Python, outra forma mais simples seria usando um dicionário mesmo, algo como:Isso pode parecer um pouco repetitivo, mas não tem problema e deixa a escrita do código muito mais fácil de interpretar, exemplo:
Bem-vindo ao dev.to. Postar um código aqui, principalmente que você ache que teria algum valor para outras pessoas, ou até para você mesmo no futuro, é uma forma de conteúdo interessante. Assim, gostaria de aproveitar para dar algumas dicas simples para deixá-lo ainda melhor:
python
.