Já está ficando repetitivo eu dizer que gostaria de trazer abordagens que são menos conectadas às tarefas de cientistas de dados. Mas, mais uma vez, esse é o intuito do post. Da última vez que abordei a temática, falei de uma tarefa bastante comum em cursos de programação, a de criar um conversor de decimal para binário. Agora, vamos para outra tarefa comum, mas mais nos cursos de finanças: criar uma calculadora de juros compostos em Python!
BREVE INTRODUÇÃO AOS JUROS COMPOSTOS
Caso você não saiba a teoria de juros compostos, recomendo que busque outros materiais, pois não é o intuito do post. De antemão, estou assumindo que você sabe como fazer o cálculo. Basicamente, você tem que somar 1 à taxa de juros e elevar ao número de períodos de tempo que gostaria. Alguns exemplos:
- Suponha que você tem um principal de 100 reais. O valor está aplicado a uma taxa de juros de 10% ao ano, durante um período de 2 anos. Ao final do período você terá:
100* (1+0,1)^2 = 121 reais
Sendo que 21 reais são referentes aos juros - Imagine que você tenha tomado emprestado 2500 reais do banco. A taxa do empréstimo é de 1% ao mês e você deve pagá-lo no final do ano. O valor que você irá pagar será:
2500*(1+0,01)^12 = 2817,06 reais.
Sendo 317,06 reais o valor dos juros.
NOSSA CALCULADORA EM PYTHON
Fazer isso em Python é super simples, pois você só precisa aplicar as fórmulas dentro de uma função. Caso não se lembre do que é uma função, veja os posts Funções, While, For e Conversor de Binário em Python e Construindo Funções em Python. Agora que você já se lembra, bora construir nossa calculadora de juros compostos:
def calc_juros_compostos(principal, periodo, juros): """ CALCULADORA DE JUROS COMPOSTOS """ montante = principal * ((1 + juros/100)**periodo) juros = montante-principal return print("O montante final foi de: " + str("R$ %.2f" % montante)+".\nOs juros foram de: "+ str("R$ %.2f" % juros))
Analisando cada linha da função, temos:
- Um descritivo do que faz a função. No caso, é uma calculadora de juros compostos;
- Calcula-se o montante e os juros através de fórmulas matemáticas bem simples e diretas;
- Retorna o que queremos. No nosso caso, optamos por retornar um texto descrevendo qual o valor do montante e qual o valor dos juros. Note que para unir uma string a um número, precisamos converter o número em texto. Por isso utilizamos str(). Adicionalmente, formatamos o número para que ele retorne apenas duas casas decimais.
Caso queira chamar a função, você só precisa digitar o nome dela com os parâmetros em parênteses. Vejamos o nosso exemplo do empréstimo de 2500 reais por 1 ano com taxa de 1% ao mês:
NOSSO APP PARA CALCULAR JUROS COMPOSTOS
Por fim, podemos criar um aplicativo que faça esses cálculos, algo fora do Jupyter Notebook e que seja executável no terminal de forma simples e direta. O caminho é um pouco mais complexo que o que foi passado no post Construindo seu primeiro app em Python, mas ainda assim tranquilo.
Primeiro, abra um editor qualquer, como o Sublime, o VSCode ou Notepad++ e digite a função que criamos no bloco anterior. Porém, agora você precisará incluir algumas linhas novas. Anterior à função, importe sys. Após, você precisa incluir um condicional que mapeará as linhas de comando às linhas da função:
import sys def calc_juros_compostos(principal, periodo, juros): """ CALCULADORA DE JUROS COMPOSTOS """ montante = float(principal) * ((1 + float(juros)/100)**float(periodo)) juros = montante-principal return print("O montante final foi de: " + str("R$ %.2f" % montante)+".\nOs juros foram de: "+ str("R$ %.2f" % juros)) if __name__ == '__main__': calc_juros_compostos(*(map(float, sys.argv[1:])))
Note que além disso, tivemos que incluir a conversão para float, caso contrário, teríamos um erro de formato das variáveis.
Tendo feito isso, salve o arquivo com o nome que preferir. No meu caso, salvei como calculadora.py. Em seguida, abra o terminal e acesse o diretório no qual o arquivo calculadora.py se encontra.
Para acessar um diretório qualquer pelo terminal é bem simples:
cd ~/Desktop/Cursos_e_Outros/Posts-EstatSite/
Feito isto, você só precisa digitar python + nome do arquivo + argumentos. Dessa forma:
python calculadora.py 2500 12 1
Veja como ficou no meu terminal:
E aí está sua calculadora! Mais um app feito em Python!
E aí? Gostou do conteúdo? Se inscreva para receber todas as novidades. Deixe seu e-mail em INSCREVA-SE na barra à direita, logo abaixo de pesquisar. E, por favor, não deixe de comentar, dar seu feedback e, principalmente, compartilhar com seus amigos. De verdade, isso faz toda a diferença. Além disso, você também pode acompanhar mais do meu trabalho seguindo a conta de Twitter @EstatSite ou por alguma das redes que você encontra em Sobre o Estatsite / Contato, como meu canal de Youtube Canal do Yukio. E se você gosta de tecnologia, escute o Pitacotech!
Bons estudos!
print(‘*** Calculadora de juros compostos profissional ***’)
def valorFuturo(r, i, n, c):
s = r * ((((1 + i) ** n) – 1) / i)
m = (c * (1 + i) ** n)
vf = m + s
print (“No final do período você terá R$ ” + “%.2f” % vf)
erro = ‘Digite apenas valores numéricos.’
while True == True:
c = input(‘Qual o valor de investimento inicial? ‘)
try:
float(c)
c = float(c)
if c >= 0:
break
else:
print(‘O investimento inicial não pode ser negativo.’)
except:
print(erro)
while True == True:
r = input(‘Qual o valor do aporte mensal? ‘)
try:
float(r)
r = float(r)
if r >= 0:
break
else:
print(‘O valor do aporte mensal não pode ser negativo.’)
except:
print(erro)
while True == True:
i = input(‘Qual a taxa de juros (%) mensal? ‘)
try:
float(i)
i = float(i)
i = i / 100
break
except:
print(erro)
while True == True:
n = input(‘Qual a quantidade de meses de investimento? ‘)
try:
float(n)
n = float(n)
if n >= 0:
break
else:
print(‘A quantidade de meses não pode ser negativa.’)
except:
print(erro)
valorFuturo(r, i, n, c)