Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Desafio: Simulador de pedidos em uma cafeteria

Segue meu projeto em python

Abordagem por Listas e Coleções (Foco em Dados)
Esta técnica é muito útil para modelos de aprendizado de máquina, onde você precisa manter o registro de todos os itens antes de processá-los
.
Passo a Passo:

  1. Armazenamento: Em vez de apenas somar, guardamos os preços em uma lista (Python).
  2. Processamento em Lote: Uso de funções nativas da linguagem para somar todos os valores da lista de uma vez.
  3. Lógica de Desconto: Aplicada sobre o resultado da soma da coleção.
itens_precos = []
qtd = int(input("Quantidade de itens: "))

for _ in range(qtd):
    input("Nome do item: ") 
    itens_precos.append(float(input("Preço: ")))

# Pergunta se o cliente é cadastrado e transforma em Booleano
resposta = input("Cliente é cadastrado? (S/N): ").upper()
cadastrado = resposta == "S"

total = sum(itens_precos)
if cadastrado:
    total *= 0.90 

print(f"Valor total do pedido: R$ {total:.2f}")
1 resposta

Oi, Carlos. Tudo bem com você?

Obrigado por compartilhar sua solução e também a explicação da abordagem escolhida. O algoritmo atende ao desafio proposto, pois registra a quantidade de itens, coleta os preços, calcula o total utilizando sum() e aplica corretamente o desconto de 10% quando o cliente é cadastrado. Além disso, optar por armazenar os preços em uma lista é uma decisão válida e mostra que você explorou uma alternativa diferente da soma acumulada. Embora, para este exercício, não seja obrigatório manter os valores armazenados, essa estratégia facilita futuras extensões, como emitir um relatório do pedido ou calcular estatísticas sobre os itens registrados.

Como sugestão, você poderia aproveitar também o nome de cada item, já que ele está sendo solicitado pelo programa, mas atualmente não é armazenado nem utilizado posteriormente. Uma possibilidade seria criar uma lista de nomes ou até mesmo armazenar cada item como uma estrutura contendo nome e preço, permitindo exibir um resumo completo do pedido antes do cálculo final. Isso seria útil caso a cafeteria desejasse listar todos os produtos comprados pelo cliente.

Como você adaptaria essa solução para permitir que um mesmo cliente realizasse vários pedidos durante a execução do programa, mantendo um histórico de cada compra?

Parabéns pela solução e pela iniciativa de apresentar o raciocínio utilizado. Continue compartilhando seus projetos. O fórum permanece à disposição para acompanhar sua evolução e esclarecer novas dúvidas.

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