def calculate_npv(rate, cash_flows): npv = 0 for i in range(len(cash_flows)): npv += cash_flows[i] / ((1 + rate) ** i) return npv def calculate_irr(cash_flows): rate, increment = 0.01, 0.0001 npv = calculate_npv(rate, cash_flows) while npv > 0: rate += increment npv = calculate_npv(rate, cash_flows) return rate def financial_metrics(): cash_flows = [] rate = float(input("Taux : ")) initial_investment = float(input("Invest. init. : ")) cash_flows.append(-initial_investment) years = int(input("Nb d'années : ")) for i in range(1, years + 1): cf = float(input("Flux année " + str(i) + " : ")) cash_flows.append(cf) npv = calculate_npv(rate, cash_flows) irr = calculate_irr(cash_flows) print("VAN : " + str(npv)) print("TIR : " + str(irr)) # Calcul et affichage des flux actualisés et cumulés cumulative_cash_flow = 0 for i in range(len(cash_flows)): discounted_cf = cash_flows[i] / ((1 + rate) ** i) cumulative_cash_flow += discounted_cf print("Flux actualisé année " + str(i) + " : " + str(discounted_cf)) print("Cumulé jusqu'à année " + str(i) + " : " + str(cumulative_cash_flow)) financial_metrics()