Python投资计算器
求你了,我需要帮助来解决这个问题。我不知道我要去哪里。 任务是: “编写一份功能投资(PMT,n,i),计算客户在未来某个时间点的储蓄,如果:Python投资计算器,python,while-loop,calculator,Python,While Loop,Calculator,求你了,我需要帮助来解决这个问题。我不知道我要去哪里。 任务是: “编写一份功能投资(PMT,n,i),计算客户在未来某个时间点的储蓄,如果: 每年年底投资一笔金额,从金额开始 在今年年底的PMT中 年利率为1%,每年复利 投资额每两年(累计)翻一番。” 这是我的代码: def investment(PMT, n, i): x = 0 while x < n: if x % 2 == 1: PMT = 2*(PMT*(1 + i
- 每年年底投资一笔金额,从金额开始 在今年年底的PMT中
- 年利率为1%,每年复利
- 投资额每两年(累计)翻一番。”
def investment(PMT, n, i):
x = 0
while x < n:
if x % 2 == 1:
PMT = 2*(PMT*(1 + i)**n)
else:
PMT = PMT*(1 + i)**n
x = x + 1
investment_balance = PMT
return round(investment_balance, 2)
def投资(PMT、n、i):
x=0
而x
答案应该是:
投资(15000,30,0.1045)=1954935238.47
但我得到了:3.4728768295747016e+47。一些观察结果:
由于付款是在年底支付的,利息为每年1%,因此在第一年年底应该没有利息
如果投资每两年翻一番,您可以计算两年的实际利率,然后每两年复利(每两年)。正如在运行中一样,这是一个正常的复利方程,其中PMT是每个复利的两倍。应该让逻辑更简单一些。对于奇数n,您必须使用原始利率进行最后一次复利
您的方程式覆盖了每个循环上的PMT。PMT不随利息增加,只是每两年增加一倍。如果PMT在第0年是100美元,那么在第2年它应该只有200美元,而不是通过循环进行三次复利。您使用的公式看起来像是您用来计算复利的货币价值的公式。这是正确的,但你不想在循环中进行计算。您的结果将太大 试试这个
- 将初始投资余额设置为0
- 开始循环x年
- 如果年份是奇数(因为我们从0开始计算),则加倍付款
- 将利息应用于余额
- 将付款添加到余额中
def investment(PMT, n, i):
x = 0
investment_balance = 0
while x < n:
if x % 2 == 1:
PMT = 2* PMT
investment_balance *= (1 + i)
investment_balance += PMT
x = x + 1
return round(investment_balance, 2)
def投资(PMT、n、i):
x=0
投资余额=0
而x
这适用于您提供的示例输入。从一个小而简单的测试用例开始。手工找出正确答案,然后比较代码的结果。不要一开始就输入你认为你知道答案的巨大值,然后在不匹配时盯着屏幕。此外,这缺乏关于PMT和n的信息。你能澄清一下
PMT
应该代表什么吗?这就是问题所在。PMT是每年年底的投资额。@Hackares你能写出每个案例的正确公式吗。我最好创建逻辑并在上面的代码中找到bug。