Calculadora de juros compostos em Python

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!

Um comentário em “Calculadora de juros compostos em Python”

  1. 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)

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *