import os
def capturar_valores():
while True:
try:
valor_da_conta = float(input('Informe o valor da conta: ').strip())
valor_porcentagem = int(input('Informe a porcentagem da gorjeta: ').strip())
if valor_da_conta <= 0 or valor_porcentagem < 0:
print('Os valores devem ser positivos. Tente novamente.')
if not deseja_retornar():
quit()
continue
return valor_da_conta, valor_porcentagem
except (ValueError, TypeError):
print('Informe um valor numérico válido.')
if not deseja_retornar():
quit()
continue
def resultados_valores():
valor_conta, valor_porcentagem = capturar_valores()
valor_gorjeta = valor_conta * (valor_porcentagem / 100)
valor_total = valor_conta + valor_gorjeta
print(f'\nValor da gorjeta: R${valor_gorjeta:.2f}')
print(f'Valor total da conta: R${valor_total:.2f}')
def deseja_retornar():
while True:
retornar = input('\nDeseja retornar (S/N): ').strip().lower()
if retornar in ('s', 'n'):
return retornar == 's'
print('Digite apenas "S" ou "N"!')
def main():
while True:
os.system('cls')
resultados_valores()
if not deseja_retornar():
print("Encerrando programa")
break
if __name__ == "__main__":
main()