You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:45:03