Isildur1 Postado Maio 17, 2017 Denunciar Share Postado Maio 17, 2017 Ola boa tarde! Foi passado pelo professor uma lista de alguns exercícios e acabei travando no ultimo alguém pode me ajudar? a minha tentativa ficou assim: codigo = 1 quantidade = 0 invalido = 0 valor = 0 precototal = 0 while codigo != 0: codigo = int(input("Digite o código do produto: ")) if (codigo == 0): print("O valor total da compra é: R$%.2f" % valortotal, "reais.") precototal = 0 invalido = 1 elif (codigo == 1): valor += 0.5 invalido = 0 elif (codigo == 2): valor += 1.00 invalido = 0 elif (codigo == 3): valor += 4.00 invalido = 0 elif (codigo == 5): valor += 7.00 invalido = 0 elif (codigo == 9): valor += 8.00 invalido = 0 else: print(" Codigo Invalido ") invalido = 1 if (invalido == 0): quantidade = int(input("Digite a quantidade desejada: ")) valortotal = valor * quantidade print("R$%.2f" % valortotal) Mas quando aperto 0, ao invés dele somar todos as quantidades, de todos os itens ele passa apenas o total do ultimo item... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucas Cléopas Postado Maio 20, 2017 Denunciar Share Postado Maio 20, 2017 Mano, as linhas q você soma o valor com o valor mais o preço começam a somar valores errados dependendo da quantidade....porque seu codigo soma o valor + preço e só depois vai multiplicar com a quantidade, aí acontece um erro de soma quando utiliza mais de 1 quantidade.... Toda vez q você aperta 0, o q mostra é a ultima parcial do valor total, ele não deve ser mostrado, mas sim o preço total q você definiu no início mas n atribuiu valores dps....n sei se estou explicando direito mas eu fiz algumas mudanças no teu código, olha: codigo = 1 quantidade = 0 invalido = 0 valor = 0 precototal = 0 valorparcial = 0 while codigo != 0: codigo = int(input("Digite o código do produto: ")) if (codigo == 1): valor = 0.5 invalido = 0 elif (codigo == 2): valor = 1.00 invalido = 0 elif (codigo == 3): valor = 4.00 invalido = 0 elif (codigo == 5): valor = 7.00 invalido = 0 elif (codigo == 9): valor = 8.00 invalido = 0 else: print(" Codigo Invalido ") invalido = 1 if (invalido == 0): quantidade = int(input("Digite a quantidade desejada: ")) valorparcial2 = valor * quantidade valorparcial += valorparcial2 print("R$%.2f" % valorparcial) precototal = precototal + valorparcial2 if (codigo == 0): print("O valor total da compra é: R$%.2f" % precototal, "reais.") invalido = 1 aqui ele tá fazendo tudo certo, eu defini uma variavel pra mostrar a parcial do preço (valorparcial2) e outra pra acumular essa parcial para ser mostrada no preço total...note q também tirei os acumuladores da variavel "valor'' pra não haver mais aquele erro de resultado....isso é tudo mano.... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Isildur1 Postado Maio 31, 2017 Autor Denunciar Share Postado Maio 31, 2017 Muito obrigado Lucas! nos fizemos de um jeito meio pedreiro, mas foi... mas valeu pela resposta, o seu ficou perfeito! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Isildur1
Ola boa tarde!
Foi passado pelo professor uma lista de alguns exercícios e acabei travando no ultimo
alguém pode me ajudar?
a minha tentativa ficou assim:
codigo = 1
quantidade = 0
invalido = 0
valor = 0
precototal = 0
while codigo != 0:
codigo = int(input("Digite o código do produto: "))
if (codigo == 0):
print("O valor total da compra é: R$%.2f" % valortotal, "reais.")
precototal = 0
invalido = 1
elif (codigo == 1):
valor += 0.5
invalido = 0
elif (codigo == 2):
valor += 1.00
invalido = 0
elif (codigo == 3):
valor += 4.00
invalido = 0
elif (codigo == 5):
valor += 7.00
invalido = 0
elif (codigo == 9):
valor += 8.00
invalido = 0
else:
print(" Codigo Invalido ")
invalido = 1
if (invalido == 0):
quantidade = int(input("Digite a quantidade desejada: "))
valortotal = valor * quantidade
print("R$%.2f" % valortotal)
Mas quando aperto 0, ao invés dele somar todos as quantidades, de todos os itens ele passa apenas o total do ultimo item...
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.