Python贷款计算器:等额本息与等额本金还款方案详解
- 一、摘要
- 二、整体架构流程
- 1. 输入处理层
- 2. 核心计算层
- 3. 结果输出层
- 三、具体技术细节
- 1. 等额本息实现解析
- 2. 等额本金实现解析
- 3. 输出格式化技术
- 四、运行
- 1.等额本息
- 2.等额本金
- 五、结论
- 附:完整代码
一、摘要
本文介绍一款基于Python的贷款还款计算工具,支持等额本息与等额本金两种主流还款方式。通过输入贷款总额、年利率和期限,可自动生成包含每月还款明细的Excel表格,并在控制台展示首年还款计划。核心算法严格遵循金融计算公式,等额本息采用等比数列求和推导月供公式,等额本金实现线性递减利息计算。程序包含完善的输入验证(如贷款期限≤30年)和异常处理机制,输出结果包含总还款额、总利息等关键指标。特别针对等额本金方式,额外显示首月还款峰值及月减额。本工具适用于房贷/车贷场景,既可作为金融从业者的分析助手,也可帮助普通用户直观对比还款方案差异。

二、整体架构流程
1. 输入处理层
- 通过
input()
获取用户输入的贷款总额、年利率(需转换为月利率)、还款年限及还款方式选择 - 关键验证逻辑:
if principal <= 0 or annual_rate < 0 or years <= 0 or total_months > 360:raise ValueError("输入参数无效")
2. 核心计算层
- 等额本息算法(
calculate_equal_principal_and_interest
):
采用等比数列求和公式推导,确保每月还款额固定monthly_payment = principal * monthly_rate * (1 + monthly_rate) ** months / ((1 + monthly_rate) ** months - 1)
- 等额本金算法(
calculate_equal_principal
):monthly_principal = principal / months # 每月固定本金 interest = remaining_principal * monthly_rate # 剩余本金计息
3. 结果输出层
- 生成带格式的Excel文件(需
openpyxl
引擎) - 控制台输出首年还款明细(超过12个月时自动折叠中间月份)
- 汇总信息包含总利息、等额本金特有统计项
三、具体技术细节
1. 等额本息实现解析
- 月供公式推导:
通过等比数列求和公式推导得出:
M = P × r ( 1 + r ) n ( 1 + r ) n − 1 M=P\times \frac{r\left ( 1+r \right )^{n}}{\left ( 1+r \right )^{n}-1} M=P×(1+r)n−1r(1+r)n
其中 M M M为月供, P P P为本金, r r r为月利率, n n n为还款月数。 - 数据流控制:
remaining_principal -= principal_paid # 每月更新剩余本金 details.append({...}) # 存储包含五维数据的字典
2. 等额本金实现解析
- 递减特性实现:
payment = monthly_principal + (remaining_principal * monthly_rate) remaining_principal -= monthly_principal # 每月固定扣减本金
- 月减额计算:
首月利息: P × r P\times r P×r
次月利息: ( P − P n ) × r \left ( P-\frac{P}{n} \right )\times r (P−nP)×r
月减额: P n × r \frac{P}{n}\times r