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加速器可以用于快速评估项目的财务可行性,帮助用户快速做出投资决策,用户可以根据项目实际需求调整功能模块,添加更多详细信息或高级功能。
@版权声明
转载原创文章请注明转载自Fly加速器官网-新一代网络加速引擎 | 高速,稳定| Fly官网-VPN加速器,网站地址:https://app-flyvpn.com/