O systema conta com validação de segurança que garante que a quantidade de itens seja um número inteiro, que o preço seja um número válido e não negativo e que a resposta sobre o cadastro seja sim ou não. Usa try/except para capturar entrada inválida sem quebrar, o sistema só avança quando os dados são válidos.
def sistema_atendimento( ):
print("=== Sistema de Atendimento ===")
# Validação quantidade de itens
while True:
try:
qtd_itens = int(input(" Quantos itens o cliente vai pedir ? "))
if qtd_itens <= 0:
print(" Digite um número. ")
continue
break
except ValueError:
print(" Entrada inválida. Digite um número. ")
total = 0
pedidos = []
# Registro dos pedidos e validação de preço
for i in range(qtd_itens):
produto = input(f"Nome do produto {i+1}: ")
while True:
try:
preco = float(input(f"Preço do produto {i+1}: R$ "))
if preco < 0:
print(" Preço não pode ser inválido. Digite novamente. ")
continue
break
except ValueError:
print(" Entrada inválida. Digite um valor. ")
pedidos.append((produto, preco))
total += preco
# Exibe resumo dos pedidos.
print("\n--- Resumo do Pedido ---")
for produto, preco in pedidos:
print(f"{produto} - R$ {preco:.2f}")
print(f"Total sem desconto: R$ {total:.2f}")
# Verifica se cliente é cadastrado
while True:
cadastrado = input("O cliente é cadastrado? (s/n): ").strip().lower()
if cadastrado in ["s", "n"]:
break
else:
print(" Entrada inválida. Digite 's' para sim ou 'n' para não. ")
if cadastrado == "s":
desconto = total * 0.10
total_com_desconto = total - desconto
print(f"Desconto aplicado: R$ {desconto:.2f}")
print(f"Total com desconto: R$ {total_com_desconto:.2f}")
else:
print(" Cliente não cadastrado. Valor final sem desconto. ")
print(f"Total a pagar: R$ {total:.2f}")
print("\nAtendimento finalizado.")
Executa o sistema
if name == "main":
sistema_atendimento()