尝试将投资金额相加,但继续说不可迭代

时间:2018-09-25 12:27:45

标签: python python-3.x

我正在尝试运行此代码

def pv(PMT,i,n):
    for j in range(0,n):
        fv=sum(PMT*(1+i)**n)
        return fv

它应该加上p + p(1 + i)+ p(1 + i)** 2,但我知道

  

TypeError:“ int”对象不可迭代

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

sum内置函数将iterable作为参数,但是表达式PMT*(1+i)**n解析为整数。

您可以改用generator-expression来解决问题:

def pv(PMT, i, n):
    fv = sum(PMT*(1+i)**n for j in range(0,n))

    return fv