蟒蛇复合兴趣

时间:2016-02-19 03:11:34

标签: python python-3.x

我正试图弄清楚如何在多年来正确显示利息和本金。以下是我遇到问题的代码部分:

print ('Luke\n-----')
print ('Year\tPrincipal\tInterest\t Total')

LU_RATE = .05
YEAR = 1
Principal = 100

for YEAR in range (1,28):

   # Calculating Luke's total using formula for compounding interest
   Lu_Total = (Principal * ((1 + LU_RATE) ** YEAR))

   # I realize it's a logical error occurring somewhere here
   Lu_Interest = #I'm not sure what to code here
   Lu_Principal = #And here

   # Displaying the Principal, Interest, and Total over the 27
   print (YEAR,'\t%.02f\t\t %.02f\t\t %.02f' %(Lu_Principal, Lu_Interest, Lu_Total))

这是显示的内容(当然减去评论符号):

Luke
-----
Year    Principal    Interest    Total
1        #            #           105.00
2        #            #           110.25
3        #            #           115.76
4        #            #           121.55
5        #            #           127.63
6        #            #           134.01
#etc etc....

我尝试编码的每个方程式对第一年都有正确的兴趣,但最终将校长作为总计。每年过去都计算出错误的数字。

应该看起来像:

Luke
-----
Year    Principal    Interest    Total
1        100.00       5.00       105.00
2        105.00       5.25       110.25
3        110.25       5.51       115.76
#etc etc....

我一整天都在不停地工作,似乎无法弄明白。提前感谢您的任何帮助或建议。

4 个答案:

答案 0 :(得分:1)

这听起来像是家庭作业,所以我会有点模糊:

你有一个循环。你的程序从循环的顶部到循环的底部执行,然后返回并再次从循环的顶部重新开始。

您可以通过设置下一次将在循环顶部使用的循环底部的值来更改内容。

例如,您可以根据今年的本金计算利息。你是在循环的顶端做的。

在循环的底部,在您打印出今年的所有内容之后,您可以通过添加(今年的)兴趣来更改(明年的)本金。那么100就会变成105等等。

答案 1 :(得分:1)

另一名选手; - )

print ('Luke\n-----')
print ('Year\tPrincipal\tInterest\t Total')

rate = .05
principal = 100.

for year in range (1, 28):
    # calculate interest and total
    interest = principal * rate
    total = principal + interest

    # displaying this year's values
    print(year,'\t%.02f\t\t %.02f\t\t %.02f' %(principal, interest, total))

    # next year's principal == this year's total
    principal = total

产生

Luke
-----
Year    Principal       Interest         Total
1       100.00           5.00            105.00
2       105.00           5.25            110.25
3       110.25           5.51            115.76
4       115.76           5.79            121.55

# ... etc ...

答案 2 :(得分:0)

可能有另一种方法可以做到这一点,但我认为你有一些问题。一个是您需要根据原始主要值计算“总计”(您将本金乘以1 +率**年),并且需要将此值与其余计算分开。

因此,您可以使用p0pN这两个名称,其中p0代表第0年的初始主体,而pN代表原始主要PLUS应计利息在N年,然后我们在循环结束时重新分配pN

r = .05
p0, pN = 100, p0
for y in range(1,5):
    total = p0 * ((1+r)**y)
    i = total - pN
    print (y,'\t%.02f\t\t %.02f\t\t %.02f' %(pN, i, total))
    pN = total

输出符合您的预期:

enter image description here

答案 3 :(得分:0)

这是我做的:

print ('Luke\n-----')
print ('Year\tPrincipal\tInterest\t Total')

LU_RATE = .05
YEAR = 1
Principal = 100
Prev_Principal = 100   #added to store previous year principal

for YEAR in range (1,28):

    # Calculating Luke's total using formula for compounding interest
    Lu_Total = (Principal * ((1 + LU_RATE) ** YEAR))

    Lu_Interest = Lu_Total - Prev_Principal

    Lu_Principal = Lu_Total - Lu_Interest

    Prev_Principal = Lu_Total


    # Displaying the Principal, Interest, and Total over the 27
    print (YEAR,'\t%.02f\t\t %.02f\t\t %.02f' %(Lu_Principal, Lu_Interest, Lu_Total))