1
resposta

Desafio: Simulador de pedidos em uma cafeteria

lista = []
soma = 0

qtd_itens = int(input("Digite a qtd de itens: "))

for x in range(qtd_itens):
nome = input(f"Digite o nome do {x+1}° item: ")
preco = float(input(f"Digite o preço de {nome}: "))
quantos = int(input("Quantos desse item vai pegar: "))
lista.append((nome, preco, quantos, precoquantos))
soma += preco
quantos

cadastrado = input("\nO cliente é cadastrado? (s/n): ").strip().lower()

if cadastrado in ["s", "sim"]:
valor_final = soma * 0.9
print(f"\nO cliente possui cadastro e recebeu 10% de desconto!")
else:
valor_final = soma
print(f"\nO cliente não possui cadastro.")

print("\n--- Resumo do pedido ---")
for item, preco, qnts, total in lista:
print(f"Produto: {item} - unidade: R${preco:.2f}\nQntd na sacola: {qnts} - total: R${total:.2f}")

print(f"\nValor total: R${soma:.2f}")
print(f"Valor a pagar: R${valor_final:.2f}")

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Rafaela! Como vai?

Com o que você descreveu, sua lógica de lista e desconto está no caminho certo.

Porém, há um problema na variável precoquantos não existir; use preco * quantos e guarde em total_item. Resolva fazendo o seguinte: indentacao do bloco for, ajuste do append para incluir total_item, e no for final desempacote os itens corretamente. Ex.: for item, preco, qnts, total in lista:. Importante: ao exibir valores, mantenha duas casas com :.2f.

Uma dica interessante para o futuro é usar enumerate para numerar as perguntas e centralizar o cálculo do total por item. Veja este exemplo:


lista = []
soma = 0.0

qtd_itens = int(input("Digite a qtd de itens: "))

for i in range(qtd_itens):
    nome = input(f"Digite o nome do {i+1} item: ")
    preco = float(input(f"Digite o preco de {nome}: "))
    quantos = int(input("Quantos desse item vai pegar: "))
    total_item = preco * quantos
    lista.append((nome, preco, quantos, total_item))
    soma += total_item

cadastrado = input("\nO cliente eh cadastrado? (s/n): ").strip().lower()
valor_final = soma * 0.9 if cadastrado in ["s", "sim"] else soma

print("\n--- Resumo do pedido ---")
for item, preco, qnts, total in lista:
    print(f"Produto: {item} - unidade: R${preco:.2f}\\nQntd na sacola: {qnts} - total: R${total:.2f}")

print(f"\nValor total: R${soma:.2f}")
print(f"Valor a pagar: R${valor_final:.2f}")

Esse exemplo calcula total_item com preco * quantos, soma em soma e formata a saida com duas casas decimais.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!