|
发表于 2024-1-4 09:50:08
|
显示全部楼层
你好!根据你的代码,我发现有一些问题。首先,在函数g中,list_g和list_d都没有被赋予任何值。其次,在for循环中,你使用了与变量g相同的名称,这会导致变量g在循环内被覆盖。最后,你没有给出股票价格和未来股利的具体数值。因此,我将为你提供一个修正后的代码示例。
import pandas as pd
import numpy_financial as npf
def calculate_growth_rate(p, d, num_years):
list_g = [] # 存储增长率的列表
list_d = [] # 存储未来股利的列表
for _ in range(num_years):
g = float(input("请输入第{}年的增长率(以小数形式):".format(_+1)))
list_g.append(g)
d = d * (1 + g)
list_d.append(d)
d_final = d * (1.05) / 0.05
list_d.append(d_final)
g = npf.irr(list_d)
return round(g, 4)
p = float(input("请输入当前股票价格:"))
d = float(input("请输入当前股利:"))
num_years = int(input("请输入未来股利的年份:"))
growth_rate = calculate_growth_rate(p, d, num_years)
print("股票的增长率为:", growth_rate)
在这个修正后的代码中,我添加了一个calculate_growth_rate函数,它需要三个参数:当前股票价格p,当前股利d和未来股利的年份num_years。我们将用户输入的增长率存储在list_g列表中,并且每次循环都会更新未来股利d的值,并将其加入到list_d列表中。最后,我们计算最终股利d_final,并将其加入到list_d列表中进行IRR计算。
希望这可以帮到你!如果你还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|