使用Python进行复利

2024-04-26 11:20:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个测试,它可以按年份返回利息总额。在我的Investor类的数组interest = []内的每一步合成时,如何添加感兴趣的值?由于某些原因,这一直很难让我的头脑。在

代码:

class Test(unittest.TestCase):

'''Represents my test case(s) for the dojo.'''

def setUp(self):
    '''Defines the initial state of an investor.'''
    self.investor = Investor(10000, 7.2, 5)

def test_solve_for_interest(self):
    self.assertEqual(self.investor.get_interest(), 720.0)

def test_get_interest_by_year(self):
    '''Returns a value of interest associated by the year.'''
    self.assertEqual(self.investor.interest_by_year(1), 10720.0)


class Investor(object):

    def __init__(self, amount, rate, time):
        self.amount = amount
        self.rate = rate
        self.time = time

    def get_interest(self):
        return (self.amount * self.rate) / 100.0

    def interest_by_year(self, year):
        interest = []
        for i in xrange(1, (self.time+1)):
            # collect compounding interest each year
        return interest[year]

预期结果:

^{pr2}$

Tags: thetestselfforgetbyratetime
2条回答

用熊猫可以更优雅地解决这个问题:

years = range(1,6)
rate = 0.072
rates = pandas.Series(index = years, data = rate)

请注意,这一比率可能会在不同年份有所不同

^{pr2}$
def interest_by_year(self, year):
    interest = [self.amount]
    for i in xrange(self.time):
        interest.append(interest[i]*self.rate)
    return interest[year]

测试:

^{pr2}$

输出:

^{3}$

相关问题 更多 >