编写函数LoanCalculator,根据参数返回每月贷款详细信息及利息总额,具体要求如下: 1.参数包括贷款额度、贷款期限、年利率(默认4.35%)和还款方式(1表示等额本金贷款;2表示等额本息贷款;默认为1); 2.将等额本金贷款计算和等额本息贷款计算分别写成不同的函数,在LoanCalculator中根据还款方式不同进行调用; 等额本金贷款计算函数:loanavg 等额本息贷款计算函数:loanabg 3.将需要输出的数据返回到LoanCalculator,在调用LoanCalculator函数输出结果。 4.等额本息月供公式: 每月还款本息总额=P*【(R*((1+R)**N))/((1+R)**N-1)】 P:贷款本金 R:月利率 N:贷款期数
def LoanCalculator(amount, term, rate=0.0435, repayment_type=1):
"""
根据参数返回每月贷款详细信息及利息总额。
参数:
amount: 贷款额度
term: 贷款期限(月)
rate: 年利率(默认 4.35%)
repayment_type: 还款方式(1表示等额本金贷款;2表示等额本息贷款;默认为1)
返回值:
month_list: 包含每月还款信息的列表
total_interest: 利息总额
"""
# 等额本金贷款计算函数
def loanavg(amount, term, rate):
principal_per_month = amount / term # 每月偿还本金
interest_per_month = amount * rate / 12 # 每月偿还利息
month_list = []
for i in range(1, term + 1):
month_interest = interest_per_month * (term - i + 1)
month_principal = principal_per_month
month_total = month_principal + month_interest
month_list.append([i, month_principal, month_interest, month_total])
return month_list
# 等额本息贷款计算函数
def loanabg(amount, term, rate):
month_rate = rate / 12 # 月利率
temp = (1 + month_rate) ** term
month_total = amount * month_rate * temp / (temp - 1)
total_interest = month_total * term - amount
month_list = []
for i in range(1, term + 1):
month_principal = amount * month_rate * ((1 + month_rate) ** (i - 1)) / (temp - 1)
month_interest = month_total - month_principal
month_list.append([i, month_principal, month_interest, month_total])
return month_list, total_interest
if repayment_type == 1:
month_list = loanavg(amount, term, rate)
total_interest = sum([m[2] for m in month_list])
return month_list, total_interest
elif repayment_type == 2:
month_list, total_interest = loanabg(amount, term, rate)
return month_list, total_interest
else:
return "Invalid repayment type."
LoanCalculator函数接收四个参数:贷款额度amount、贷款期限term、年利率rate和还款方式repayment_type。其中,年利率默认为0.0435(即4.35%),还款方式默认为1(等额本金贷款)。
LoanCalculator函数调用了两个子函数:loanavg和loanabg。loanavg用于计算等额本金贷款的每月还款信息,loanabg用于计算等额本息贷款的每月还款信息和利息总额。
在LoanCalculator函数中,根据还款方式repayment_type的不同调用相应的子函数。对于等额本金贷款,调用loanavg函数;对于等额本息贷款,调用loanabg函数。