Calculadora do VPL no Python

Volta ao Menu

import pandas as pd


def PV01(lista, taxa):
    "Argumentos: (lista (lista01) de listas com uma data (Ano) e o Fluxo de Caixa, mais a taxa de juros)"
    
    #Convertendo a lista em dataframe
    df = pd.DataFrame(lista, index = ["1", "2", "3", "4", "5"], 
                  columns = ["Ano", "Fluxo de Caixa"])

    print(df)

    #Calculando o valor presente 
    df["VP"] = (df["Fluxo de Caixa"])/((1+taxa)**df["Ano"])
    print(df)

    #Soma dos valores presentes
    SomaPV = df["VP"].sum()
    print("\nTaxa de Juros:", taxa01, 'Investimento:',investimento)
    print("\nSoma dos Valores Presente: ", round(SomaPV,2))
    VPL = SomaPV - investimento
    print("\nValor Presente Líquido: ", round(VPL,2))

#Criando uma lista com os dados.
#A lista deve ser composta por sublistas contendo a data e o fluxode caixa na data.

lista01 = [[1, 100], [2, 100], [3, 100], [4, 100], [5, 100]]

#Definindo a taxa de juros e investimento
taxa01 = float(input('Qual a taxa de juros?'))/100
investimento = float(input('Qual o valor do Investimento?'))

PV01(lista01,taxa01)

Quando os Fluxos de Caixa são diferentes (a função VP do Excel NÃO funciona aqui)/

import pandas as pd


def PV02(lista, taxa):
    "Argumentos: (lista (lista01) de listas com uma data (Ano) e o Fluxo de Caixa, mais a taxa de juros)"
    
    #Convertendo a lista em dataframe
    df = pd.DataFrame(lista, index = ["1", "2", "3", "4", "5"], 
                  columns = ["Ano", "Fluxo de Caixa"])

    print(df)

    #Calculando o valor presente 
    df["VP"] = (df["Fluxo de Caixa"])/((1+taxa)**df["Ano"])
    print(df)

    #Soma dos valores presentes
    SomaPV = df["VP"].sum()
    print("Taxa de Juros:", taxa02, 'Investimento:', investimento)
    print("Soma dos Valores Presente: ", round(SomaPV))
    VPL = SomaPV - investimento
    print("Valor Presente Líquido: ",round(VPL))

#Criando uma lista com os dados.
#A lista deve ser composta por sublistas contendo a data e o fluxode caixa na data.

FC1 = float(input('Dê o valor do FC1:'))
FC2 = float(input('Dê o valor do FC2:'))
FC3 = float(input('Dê o valor do FC3:'))
FC4 = float(input('Dê o valor do FC4:'))
FC5 = float(input('Dê o valor do FC5:'))

lista02 = [[1, FC1], [2, FC2], [3, FC3], [4, FC4], [5, FC5]]

#Definindo a taxa de juros e investimento
numFC = 1
taxa02 = float(input('Qual a taxa de juros?'))/100
investimento = float(input('Qual o valor do Investimento?'))


PV02(lista02,taxa02)

Aqui vamos calcular o VPL para um fluxo de caixa negativo ou nulo no momento ZERO (hoje) como investimento

def PV03(lista, taxa):
    "Argumentos: (lista (lista01) de listas com uma data (Ano) e o Fluxo de Caixa, mais a taxa de juros)"
    
    #Convertendo a lista em dataframe
    df = pd.DataFrame(lista, index = ["0", "1", "2", "3", "4", "5"], 
                  columns = ["Ano", "Fluxo de Caixa"])

    print(df)

    #Calculando o valor presente 
    df["VP"] = (df["Fluxo de Caixa"])/((1+taxa)**df["Ano"])
    print(df)

    #Soma dos valores presentes
    SomaPV = df["VP"].sum()
    print("\nTaxa de Juros:", taxa03)
    print("\nSoma dos Valores Presente: ", round(SomaPV,2))
    VPL = SomaPV
    print("\nValor Presente Líquido: ",round(VPL,2))

#Criando uma lista com os dados.
#A lista deve ser composta por sublistas contendo a data e o fluxode caixa na data.

FC0 = float(input('Dê o valor do FC0 ou investimento:'))
FC1 = float(input('Dê o valor do FC1:'))
FC2 = float(input('Dê o valor do FC2:'))
FC3 = float(input('Dê o valor do FC3:'))
FC4 = float(input('Dê o valor do FC4:'))
FC5 = float(input('Dê o valor do FC5:'))

lista03 = [[0, FC0], [1, FC1], [2, FC2], [3, FC3], [4, FC4], [5, FC5]]

#Definindo a taxa de juros e investimento
numFC = 1
taxa03 = float(input('Qual a taxa de juros? '))/100


PV03(lista03,taxa03)