1
resposta

[Projeto] Minha resposta

import os

def saudação():
    print('''

█████▀██████████████████████████████████████████████████████████████████
█─▄▄▄▄█─▄▄─█▄─▄▄▀███▄─▄█▄─▄▄─█─▄─▄─██▀▄─████▄─▄▄─██▀▄─██─▄▄▄─█▄─▄█▄─▄███
█─██▄─█─██─██─▄─▄█─▄█─███─▄█▀███─████─▀─█████─▄████─▀─██─███▀██─███─██▀█
▀▄▄▄▄▄▀▄▄▄▄▀▄▄▀▄▄▀▄▄▄▀▀▀▄▄▄▄▄▀▀▄▄▄▀▀▄▄▀▄▄▀▀▀▄▄▄▀▀▀▄▄▀▄▄▀▄▄▄▄▄▀▄▄▄▀▄▄▄▄▄▀''')
    print("\n Bem-vindo ao programa de cálculo de gorjeta!\n")

def opcao_invalida():
    print("\n Entrada inválida. Por favor, digite um número válido. \n")
    input('Pressione Enter para continuar...')
    os.system('cls' if os.name == 'nt' else 'clear')

def definir_gorjeta():
    while True:
        try:
            valor_conta = float(input("Digite o valor da conta: R$ "))
            percentual_gorjeta = float(input("Digite o percentual da gorjeta (ex: 10 para 10%): "))
            return valor_conta, percentual_gorjeta
        except ValueError:
            opcao_invalida()
            
       

def calcular_gorjeta(valor_conta, percentual_gorjeta):
    gorjeta = valor_conta * (percentual_gorjeta / 100)
    total = valor_conta + gorjeta
    return gorjeta, total

            
def resultado():
    valor_conta, percentual_gorjeta = definir_gorjeta() # This will now always return valid numbers
    gorjeta, total = calcular_gorjeta(valor_conta, percentual_gorjeta)
    print(f"Gorjeta: R$ {gorjeta:.2f}")
    print(f"Total a pagar: R$ {total:.2f}")

def main():
    os.system('cls' if os.name == 'nt' else 'clear')
    saudação()
    resultado()

if __name__ == "__main__":
   main()
1 resposta

Oi, Rodrigo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu projeto ficou bem organizado, com funções separadas para saudação, validação da entrada, cálculo da gorjeta e exibição do resultado. Gostei do uso de try e except ValueError, porque isso deixa o programa mais seguro quando a pessoa digita algo que não é número.

Uma dica interessante para o futuro é validar se os valores digitados são maiores que zero antes de calcular, usando uma condição com if. Veja este exemplo:


def validar_valor(valor):
    if valor <= 0:
        print("Digite um valor maior que zero.")
        return False
    return True

Esse código verifica se o valor informado é menor ou igual a zero e retorna False quando a entrada não deve ser aceita. Assim, seu programa evita calcular gorjeta com valores inválidos. Continue praticando, sua estrutura está no caminho certo.

Alura

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