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

Desafio: Simulador de pedidos em uma cafeteria

O processo funciona assim:
O atendente informa quantos itens o cliente vai pedir.
Para cada item, o sistema solicita o nome e o preço.
Ao final, o sistema pergunta se o cliente é cadastrado.
Se for, aplica o desconto e exibe o valor com desconto.
Caso contrário, exibe o valor cheio.

total = 0
quantidade = int(input("Quantos itens? "))
 
for i in range(quantidade):
    nome = input("Nome do item: ")
    preco = float(input("Preço: R$ "))
    total += preco
 
cadastrado = input("Cliente cadastrado? (sim/não): ") == "sim"
 
if cadastrado:
    total -= total * 0.10
 
print(f"Valor total: R$ {total:.2f}")
1 resposta

Olá, Everton! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou a estrutura de repetição for para registrar itens em Python, utilizou muito bem o acumulador total para somar os preços e ainda compreendeu a importância da condicional para aplicar desconto quando o cliente é cadastrado.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é validar se o usuário digitou corretamente o preço e impedir valores negativos, tornando o programa mais robusto. Assim:

total = 0
quantidade = int(input("Quantos itens? "))

for i in range(quantidade):
    nome = input("Nome do item: ")
    preco = float(input("Preço: R$ "))
    if preco < 0:
        print("Preço inválido. Digite novamente.")
        continue
    total += preco

cadastrado = input("Cliente cadastrado? (sim/não): ").strip().lower() == "sim"

if cadastrado:
    total *= 0.90  # aplica 10% de desconto

print(f"Valor total: R$ {total:.2f}")

Isso faz com que o sistema evite inconsistências e garanta que os cálculos sejam sempre corretos.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Normalizar entradas: usar .strip().lower() para padronizar respostas.
  • Exibir resumo da compra: mostrar todos os itens e preços antes do total.
  • Encapsular em funções: separar lógica de cálculo e interação com o usuário.

Ah, uma pergunta: Você acha que seria mais interessante evoluir esse programa para mostrar um resumo detalhado da compra com todos os itens listados ou prefere mantê-lo apenas com o cálculo final?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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