从 1000 美元开始。
投资10年,每年复利。
包含年度回报的回报表,格式如下 $xxx,xxx.00
最好在不编写新实现的情况下解决问题。 Pythonic 和简洁的现有 API 应该是可能的,因为这是地球上最常见的计算之一(可能还有其他行星)。
np.lib.financial
模块。
fv
。文档中给出的示例如下:
现在存下 100 美元,每月额外存下 100 美元,10 年后的未来价值是多少。假设利率为 5%(年),每月复利?
>>> np.fv(0.05/12, 10*12, -100, -100)
15692.928894335748`
如果任何输入值是数组,则返回值数组。要计算 10 年的年度余额(与示例相同的假设),您可以编写:
>>> np.fv(0.05/12, np.arange(0, 121, 10), -100, -100)
array([ 100. , 1123.20552614, 2189.85294226, 3301.78664596,
4460.92934179, 5669.28536592, 6928.94415193, 8242.08384379,
9610.97506218, 11037.98483075, 12525.58066907])
这没有您指定的 $xxx,xxx.00 格式,但调整 NumPy 的打印选项以获得令人满意的结果应该很简单。
自 Numpy 1.20(2021 年 1 月 30 日)起,financial 函数已被删除,文档现在指向 numpy-financial 库,该库最初是原始 numpy 函数的原始副本。
此替代库托管在 Github 上的 numpy 帐户下,并且 自 2019 年 10 月以来尚未更新。
个人建议:如果你不想合并额外的依赖项,只需查看代码并使用它,大多数函数在没有文档的情况下都在 10 LoC 左右。但请注意许可证限制。
复利的公式就是:
def compound(present_value, rate, num_periods):
return present_value * (1 + rate) ** num_periods
如果需要,您可以传递 numpy 数组,例如10年后的年余额,年利率为3%,从$1000开始:
>>> compound(1000.0, rate=0.03, num_periods=np.arange(11))
array([1000. , 1030. , 1060.9 , 1092.727 ,
1125.50881 , 1159.2740743 , 1194.05229653, 1229.87386542,
1266.77008139, 1304.77318383, 1343.91637934])