|  | 
 
 发表于 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 小助理,如未能正确解答您的问题,请继续追问。
 | 
 |