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

total = 0

quantidadeItens = int(input("Digite a quantidade de itens: "))
for contador in range(1, quantidadeItens + 1):
print(f"\n--- Item {contador}")

nomeItem = input("Digite o nome do item: ")

precoItem = float(input("Digite o preço do intem: R$ "))

total = total + precoItem

clienteCadastrado = input("O cliente é cadastrado: (S/N).").upper()
if clienteCadastrado == "S":
desconto = total *10/100
valorFinal = total - desconto
print("\n---RESUMO DO PEDIDO---")
print(f"Total da compra: R$ {total:.2f}")
print(f"Deconto de 10%: R$ {desconto:.2f}")
print(f"Valor final R$ {valorFinal:.2f}")
else:
print("\n---RESUMO DO PEDIDO---")
print(f"Total da compra: R$ {total:.2f}")
print("Cliente não cadstrado. nenhum desconto aplicado.")
print(f"Valor final R$ {valorFinal:.2f}")

1 resposta

Olá, Estudante! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou a estrutura de repetição com range para percorrer os itens em Python, utilizou muito bem o input para tornar o programa interativo e ainda compreendeu a importância da condicional com desconto para diferenciar clientes cadastrados de não cadastrados.

Uma dica interessante para o futuro é inicializar a variável valorFinal fora da condição, evitando problemas quando o cliente não é cadastrado. Assim:

total = 0
quantidadeItens = int(input("Digite a quantidade de itens: "))

for contador in range(1, quantidadeItens + 1):
    print(f"\n--- Item {contador}")
    nomeItem = input("Digite o nome do item: ")
    precoItem = float(input("Digite o preço do item: R$ "))
    total += precoItem

clienteCadastrado = input("O cliente é cadastrado (S/N)? ").upper()
valorFinal = total  # inicializa com o total

if clienteCadastrado == "S":
    desconto = total * 0.10
    valorFinal -= desconto
    print("\n--- RESUMO DO PEDIDO ---")
    print(f"Total da compra: R$ {total:.2f}")
    print(f"Desconto de 10%: R$ {desconto:.2f}")
    print(f"Valor final: R$ {valorFinal:.2f}")
else:
    print("\n--- RESUMO DO PEDIDO ---")
    print(f"Total da compra: R$ {total:.2f}")
    print("Cliente não cadastrado. Nenhum desconto aplicado.")
    print(f"Valor final: R$ {valorFinal:.2f}")

Isso faz com que o programa funcione corretamente em ambos os casos, sem risco de variável não definida.

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

  • Explorar listas: armazenar os itens e preços para exibir um resumo detalhado da compra.
  • Encapsular em funções: criar uma função para calcular o desconto e outra para exibir o resumo.
  • Adicionar validação de entrada: garantir que o preço seja positivo e que a resposta seja apenas "S" ou "N".

Continue postando suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: você acha mais interessante evoluir este código criando uma lista para detalhar todos os itens comprados ou encapsular a lógica em funções para deixar o programa mais organizado?

Abraço e bons estudos!

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