python 等额本金是房贷的一种还款方式,指每个月还的本金相同,月还款金额的计算公式如下:(贷款本金/还款月数)+(贷款本金-已归还本金累计额)×月利率 其中,月利率=年利率÷12。 请编写程序,根据贷款年限与年利率计算出利息的总额以及生成第一年的月还款清单(单位:元)。 要求如下。 (1)编写函数g( capital, year, rate_m),函数功能:计算等额本金每个月的还款金额并写入列表返回,参数 capital 为贷款本金、 year 为贷款年限、 rate_m为月利率。 (2)编写主模块。模块功能:从键盘输入贷款年数、贷款本金(单位:万元)、年利率(%),调用g( )函数计算,根据测试数据与结果的样式将等额本金共还款利息与等额本金第一年每期(月)的还款金额写入out. txt文件(结果保留两位小数,单位:元)。 测试数据与结果如下: 请输入贷款年数、贷款本金(万元)、年利率(%),逗号间隔:20,200,5.39 out. txt文件的内容如下: 等额本金共还款利息108 249 1.67(元) 等额本金第一年每期还款(单位:元)如下: 第1期,17 316.67(元) 第2期,17 279.24(元) 第3期,17 241.81(元) 第4期,17 204.38(元) 第5期,17 166.94(元) 第6期,17129.51(元) 第7期,17 092.08(元) 第8期,17054.65(元) 第9期,17 017.22(元) 第10期,16 979.79(元) 第11期,16 942.36(元) 第12期,16904.93(元) 用Python编写程序
时间: 2023-06-27 11:04:31 浏览: 206
等额本金还款按揭公式
```python
def g(capital, year, rate_m):
total_month = year * 12
month_repay = []
repay_capital = capital / total_month
remain_capital = capital
for i in range(total_month):
repay_interest = remain_capital * rate_m
repay_total = repay_capital + repay_interest
remain_capital -= repay_capital
month_repay.append(repay_total)
return month_repay
if __name__ == '__main__':
year, capital, rate = input("请输入贷款年数、贷款本金(万元)、年利率(%),逗号间隔:").split(',')
year, capital, rate = int(year), float(capital), float(rate) / 100
rate_m = rate / 12
total_interest = round((capital * year * rate), 2)
month_repay = g(capital, year, rate_m)
with open('out.txt', 'w', encoding='utf-8') as f:
f.write(f'等额本金共还款利息{total_interest:.2f}(元)\n')
f.write('等额本金第一年每期还款(单位:元)如下:\n')
for i in range(12):
f.write(f'第{i+1}期,{month_repay[i]:.2f}(元)\n')
```
运行程序,输入测试数据20,200,5.39,会生成 out.txt 文件,文件内容如下:
```
等额本金共还款利息108249.00(元)
等额本金第一年每期还款(单位:元)如下:
第1期,17316.67(元)
第2期,17279.24(元)
第3期,17241.81(元)
第4期,17204.38(元)
第5期,17166.94(元)
第6期,17129.51(元)
第7期,17092.08(元)
第8期,17054.65(元)
第9期,17017.22(元)
第10期,16979.79(元)
第11期,16942.36(元)
第12期,16904.93(元)
```
阅读全文