1
resposta

Desafio: Simulador de pedidos em uma cafeteria

total = 0.0

for x in range(qtd_itens):
nome = input("Digite o nome do item {x+1}: ")
preco = float(input("Digite o preço do item {x+1}: R$ "))
total += preco

cadastrado = input("O cliente é cadastrado?")

if cadastrado == "S":
desconto = total * 0.10
total_desconto = total - desconto
print("Valor total com desconto: R$ {total_desconto}")
else:
print("Valor total: R$ {total}")

1 resposta

Olá, Allysson! Como vai?

Parabéns por enfrentar esse desafio! Criar um Simulador de Pedidos é uma excelente maneira de praticar os pilares do Pensamento Computacional, especialmente a Automação (através de loops) e a Análise de Condições (decidindo se aplica ou não o desconto).

Seu código apresenta uma lógica de fluxo muito bem pensada. No entanto, notei alguns detalhes técnicos que são comuns quando estamos começando a transformar o pensamento lógico em sintaxe Python. Vamos ajustá-los juntos:

Ajustes no seu Código

  1. Identação: No Python, os blocos dentro do for e do if precisam de um recuo (espaço à esquerda) para o computador entender o que faz parte da repetição e o que não faz.
  2. f-strings: Para usar variáveis dentro de um texto (como {x+1}), você precisa colocar a letra f antes das aspas, assim: f"Texto {variavel}".
  3. Posição da Pergunta: A pergunta sobre o cadastro do cliente deve ser feita fora do loop for, caso contrário, o programa perguntará se o cliente é cadastrado para cada item que ele comprar!

Veja como o seu código ficaria com essas correções:

total = 0.0
qtd_itens = int(input("Quantos itens o cliente comprou? ")) # Definindo a quantidade

for x in range(qtd_itens):
    # O 'f' antes das aspas permite que o {x+1} funcione
    nome = input(f"Digite o nome do item {x+1}: ")
    preco = float(input(f"Digite o preço do item {x+1}: R$ "))
    total += preco

# A pergunta de cadastro fica fora do loop de itens
cadastrado = input("O cliente é cadastrado? (S/N): ").upper()

if cadastrado == "S":
    desconto = total * 0.10
    total_desconto = total - desconto
    print(f"Valor total com desconto: R$ {total_desconto:.2f}")
else:
    print(f"Valor total: R$ {total:.2f}")

O que você aplicou aqui:

  • Decomposição: Você separou o problema em: somar os preços e, depois, verificar o desconto.
  • Reconhecimento de Padrões: Percebeu que a ação de pedir nome e preço se repete, por isso usou o for.
  • Algoritmos: Criou uma sequência lógica de passos para resolver o pedido da cafeteria.

Como um próximo passo, que tal tentar adicionar uma regra onde, se o valor total for acima de R$ 50,00, o cliente ganha um brinde, independentemente de ser cadastrado?

Espero que possa ter lhe ajudado!