参考代码
def monthlyPayment(principal, year_rate, year_duration):
monthly_rate = year_rate / (12 * 100) # 将4.9转换为0.049,并转换为月利率
month_amounts = year_duration * 12
# 每月月供
monthly_payment = (principal * monthly_rate * (1 + monthly_rate) ** month_amounts) / (
(1 + monthly_rate) ** month_amounts - 1)
# 总利息
total_interest_payable = monthly_payment * month_amounts - principal
print('-----------------------------------')
print('应付利息总额为 %.2f ' % total_interest_payable)
for i in range(1, month_amounts + 1):
# 每月应还利息
monthly_interest_payable = principal * monthly_rate * (
(1 + monthly_rate) ** month_amounts - (1 + monthly_rate) ** (i - 1)) / (
(1 + monthly_rate) ** month_amounts - 1)
# 每月应还本金
monthly_principal_payable = principal * monthly_rate * (1 + monthly_rate) ** (i - 1) / (
(1 + monthly_rate) ** month_amounts - 1)
# 每月利息占比
monthly_interest_percentage = monthly_interest_payable * 100 / monthly_payment
print('-----------------------------------')
print(f'{i} 月付款 : {round(monthly_payment, 2)} (每月应还利息: {round(monthly_interest_payable, 2)} 每月应还本金: {round(monthly_principal_payable, 2)})')
print(f'{i} 月利息占比 {monthly_interest_percentage}')
return
if __name__ == '__main__':
principal = int(input('请输入您的贷款金额:'))
year_rate = float(input('请输入年度债务利率:(输入 4.9就是 4.9%)'))
year_duration = int(input('请输入债务年度期限:'))
monthlyPayment(principal, year_rate, year_duration)