1
resposta

[Projeto] Minha resposta à essa questão:

def get_gross_value():
    while True:
        try:
            gross_value = float(input("Enter the bill gross amount: "))
            print("Bill gross amount added successfully.")
            return gross_value
        except ValueError:
            print("Enter only numbers, please.")

def get_tip_rate():
    while True:
        try:
            tip_rate = float(input("Enter the tip percentage: ")) /100
            print("Tip percentage added successfully.")
            return tip_rate
        except ValueError:
            print("Enter only numbers, please.")
                    

def percentage_calculator():
    gross_value = get_gross_value()
    tip_rate = get_tip_rate()
    tip_amount = gross_value * tip_rate
    net_value = gross_value + tip_amount
    message = (f"""
    The bill gross amount is U${gross_value:.2f}
    The Tip amount is U${tip_amount:.2f}
    Total to pay: U${net_value:.2f}
    """)
    return message

print(percentage_calculator())
1 resposta

Olá, Raul!

Parabéns por concluir o projeto Calculando a gorjeta em um restaurante.

Sua solução apresenta uma arquitetura de código excelente. O grande destaque do seu projeto foi combinar o laço while True com o bloco try/except dentro das funções de captura (get_gross_value e get_tip_rate). Essa estratégia cria uma validação insistente: se quem estiver usando o sistema digitar uma letra ou um caractere inválido, o programa não quebra, exibe o alerta e pede o dado novamente até que uma entrada numérica correta seja fornecida.

Na sua visão, criar funções separadas para cada pergunta deixou a lógica de validação mais fácil de ler do que se todo o código estivesse misturado em um único bloco central?

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