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

Systema de Atendimento para Cafeteria.(Em PYTHON)

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()

1 resposta

Oi, José. Tudo bem com você?

Obrigado por compartilhar sua solução para o desafio do sistema de atendimento da cafeteria. Além de atender aos requisitos propostos, você adicionou validações para a quantidade de itens, preço dos produtos e resposta sobre o cadastro do cliente, tornando a aplicação mais robusta diante de entradas inválidas. O uso de try/except para tratar exceções também demonstra uma preocupação importante com a experiência de quem utiliza o programa, evitando interrupções inesperadas durante a execução. Essa é uma prática bastante utilizada em aplicações reais.

Pensando na continuidade desse projeto, como você organizaria o código caso a cafeteria passasse a oferecer diferentes formas de pagamento ou cupons de desconto?

Parabéns pelo empenho em enriquecer a atividade com validações adicionais. Continue compartilhando suas soluções. O fórum está à disposição para acompanhar sua evolução.

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