编写函数,根据参数返回每月贷款详细信息及利息额

编写函数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函数。