使用Python编写贷款摊销表时循环输出相同值问题咨询
问题根因
你的代码核心问题是循环中没有更新下一期的期初余额,每一轮计算都始终使用初始贷款本金作为期初值,所以所有月份的利息、余额计算结果完全一致,才会出现360次重复输出的问题。
修正方案
只需要在循环的打印语句之后,新增一行更新期初余额的逻辑即可,修正后完整代码如下:
import pandas as pd import math p = float(input("Amount borrowed: ")) r = float(input("Annual Interest Rate: ")) t = float(input("Payback Period in years: ")) # 计算月供 m=(p*(r/12)*(math.pow(1+r/12,12*t)))/(math.pow(1+r/12,12*t)-1) print() print("Your payment will be: $"+str(round(m,2))) print() print("Month\tStartingBalance\tInterestCharge\tPayment\tEndingBalance") month=int(12*t) startingBalance=p for i in range(1,month+1): interestCharge=r/12*startingBalance endingBalance=startingBalance+interestCharge-m print(str(i)+"\t$"+str(round(startingBalance,2))+"\t$"+str(round(interestCharge,2))+"\t$"+str(round(m,2))+"\t$"+str(round(endingBalance,2))) # 新增逻辑:更新下一期的期初余额 startingBalance = endingBalance
内容的提问来源于stack exchange,提问作者Odez
相关产品推荐
相关产品推荐

