1
resposta

calculando a conta do restaurante

def valor_gorjeta(gorjeta): 
    def valor_conta(conta): 
        
        return conta + (conta * (gorjeta / 100))
    return valor_conta


valor_da_conta = float(input('Digite o valor da conta: '))
valor_da_gorjeta = int(input('Digite o valor da gorjeta: '))

resultado = valor_gorjeta(valor_da_gorjeta)

print(f'Valor da gorjeta: {resultado(valor_da_gorjeta)}')
print(f'Total a pagar: {resultado(valor_da_conta)}')
1 resposta

Oi, João! Como vai?

Seu uso de função dentro de função chamou atenção! É uma forma interessante de encapsular lógica, e mostra domínio de closures em Python. Só vale um ajuste no uso final da função: no print com resultado(valor_da_gorjeta), o valor passado não é o da conta, e isso afeta o cálculo.

Uma dica interessante para o futuro é testar com funções diretas, para entender melhor o fluxo:


def calcular_total(conta, gorjeta):
    return conta + (conta * (gorjeta / 100))

print(calcular_total(100, 10))  # saída: 110.0

Esse código soma a conta com 10% de gorjeta direto, facilitando o entendimento.

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