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
- 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. - 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}". - 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!