python

def calculate_npv(initial_investment, cashflows, discount_rate): """ 计算项目的净现值(NPV)

参数:
    initial_investment (float): 初始投资金额
    cashflows (list): 每年的现金流(元)
    discount_rate (float): 折现率(百分比)
返回值:
    net_present_value (float): 计算出的净现值
"""
npv = -initial_investment
for year in range(len(cashflows)):
    cash = cashflows[year]
    npv += cash / (1 + discount_rate / 1) ** (year + 1)
return npv

def read_cashflows(): """ 读取现金流数据,并存储为列表 """ cashflows = [] while True: try: cash = int(input("请输入第%d年的现金流(元): " % (len(cashflows) + 1))) cashflows.append(cash) print("输入正确,继续输入...") except ValueError: print("输入错误,请重新输入数字。") continue

def calculateIRR(cashflows): """ 计算项目的内部折现率(IRR)

参数:
    cashflows (list): 每年的现金流(元)
返回值:
    internal_rate_of_return (float): 计算出的内部折现率(百分比)
"""
from numpy import irr
try:
    return irr(cashflows) * 1
except:
    return 0

def compare_projects(project1, project2): """ 比较两个项目的NPV """ if calculate_npv(project1['initial_investment'], project1['cashflows'], project1['discount_rate']) > calculate_npv(project2['initial_investment'], project2['cashflows'], project2['discount_rate']): return "项目A优于项目B" elif calculate_npv(project1['initial_investment'], project1['cashflows'], project1['discount_rate']) < calculate_npv(project2['initial_investment'], project2['cashflows'], project2['discount_rate']): return "项目B优于项目A" else: return "两个项目NPV相同"

def main():

调用读现金流函数

cashflows = read_cashflows()
# 计算项目1的NPV
project1 = {
    'initial_investment': 1,
    'cashflows': cashflows,
    'discount_rate': 0.1
}
npv1 = calculate_npv(project1['initial_investment'], project1['cashflows'], project1['discount_rate'])
print(f"项目1 NPV: {npv1:.2f}元")
# 计算项目2的NPV
project2 = {
    'initial_investment': 15,
    'cashflows': cashflows,
    'discount_rate': 0.1
}
npv2 = calculate_npv(project2['initial_investment'], project2['cashflows'], project2['discount_rate'])
print(f"项目2 NPV: {npv2:.2f}元")
# 比较两个项目的NPV
result = compare_projects(project1, project2)
print(f"结果:{result}")

if name == "main": main()


### 代码解释
1. `calculate_npv` 函数:
   - 输入初始投资和现金流数据。
   - 计算各年的现值,并累加得到净现值(NPV)。
2. `read_cashflows` 函数:
   - 读取现金流数据并存储为列表。
   - 提供用户一个输入界面,输入现金流金额并添加到列表中。
3. `calculateIRR` 函数:
   - 使用 NumPy 的 `irr` 函数计算内部折现率(IRR)。
4. `compare_projects` 函数:
   - 比较两个项目的NPV,并输出结果。
5. `main` 函数:
   - 读取现金流并调用 `calculate_npv` 计算项目1的NPV。
   - 计算项目2的NPV并输出结果。
   - 比较两个项目的NPV并输出结果。
### 注意事项
1. 代码依赖 NumPy 库,因此需要在项目中安装 NumPy。
2. 代码需要在 Python 环境中运行。
3. 代码的结构简单,可以扩展和修改以适应不同的需求。
4. 代码中包含一些简单的输入输出,可以扩展为更复杂的功能。
这个梯子NPV加速器可以用于快速评估项目的财务可行性,帮助用户快速做出投资决策,用户可以根据项目实际需求调整功能模块,添加更多详细信息或高级功能。

python

@版权声明

转载原创文章请注明转载自Fly加速器官网-新一代网络加速引擎 | 高速,稳定| Fly官网-VPN加速器,网站地址:https://app-flyvpn.com/