Python编写的房贷计算器功能小案例

题目要求:

房贷计算公式如下:
〉每月月供参考=贷款金额×[月利率×(1+月利率)^还款月数]÷{[(1+月利率)^还款月数]–1}>还款总额=每月月供参考×期限× 12
≥支付利息=还款总额–贷款金额×10000
以上计算方式中月利率(月利率=利率÷12))指以月为计息周期计算的利息。不同贷款类型的利率是不同的:对于商业贷款而言,五年以下(含五年)的贷款利率是4.75%,五年以上的贷款利率是4.90%;对于公积金贷款利率而言,五年以下(含五年)的贷款利率是2.75%,五年以上的利率是3.25%。
本案例要求编写程序,根据以上计算方式开发一个房贷计算器。

完整代码:

#核心计算公式
def payment_loan(interest_rate,loan_amount,loan_period):
    monthly_interest_rate = interest_rate / 12
    num_payments = loan_period * 12

    monthly_payment = loan_amount * 10000 * (monthly_interest_rate * (1 + monthly_interest_rate) ** num_payments) / (
                ((1 + monthly_interest_rate) ** num_payments) - 1)
    total_payment = monthly_payment * num_payments
    interest_payment = total_payment - loan_amount * 10000
    return{ "monthly_payment":monthly_payment,
            "interest_payment":interest_payment,
            "total_payment":total_payment}
#主函数
def calculate_loan():
    while True:
        payment={};
        loan_type = input("请选择贷款类型:1.商业贷款 2.公积金贷款 3.组合贷款 0.退出:")
        if loan_type=="0":
            break;
        if loan_type == "1":
            #商业贷款计算
            loan_amount = float(input("请输入贷款金额(万):"))
            loan_period = int(input("请输入贷款期限(年)5 10 15 20 25 30:"))
            interest_rate = 0.0475
            if loan_period > 5:
                interest_rate = 0.049
            payment=payment_loan(interest_rate, loan_amount, loan_period)
        elif loan_type == "2":
            #公积金贷款计算
            loan_amount = float(input("请输入贷款金额(万):"))
            loan_period = int(input("请输入贷款期限(年)5 10 15 20 25 30:"))
            interest_rate = 0.0275
            if loan_period > 5:
                interest_rate = 0.0325
            payment=payment_loan(interest_rate, loan_amount, loan_period)
        elif loan_type == "3":
            # 混合贷款计算
            loan_amount1 = float(input("请输入商业贷款金额(万):"))
            loan_amount2 = float(input("请输入公积金贷款金额(万):"))
            loan_period = int(input("请输入贷款期限(年)5 10 15 20 25 30:"))
            interest_rate = 0.0475
            if loan_period > 5:
                interest_rate = 0.049
            payment1 = payment_loan(interest_rate, loan_amount1, loan_period)
            interest_rate = 0.0275
            if loan_period > 5:
                interest_rate = 0.0325
            payment2=payment_loan(interest_rate, loan_amount2, loan_period)
            for key in payment1:
                payment[key]=payment1[key]+payment2[key]
        else:
            print("无效的贷款类型。")
            return
        #打印最终结果
        print("每月月供参考:{:.2f} 元".format(payment["monthly_payment"]))
        print("支付利息:{:.2f} 元".format(payment["interest_payment"]))
        print("还款总额:{:.2f} 元".format(payment["total_payment"]))
calculate_loan()

实现思路:

该代码实现了一个房贷计算器的功能。主要包括以下功能:

  1. payment_loan(interest_rate, loan_amount, loan_period) 函数用于计算贷款的月供、支付利息和还款总额。它接受利率(interest_rate)、贷款金额(loan_amount)和贷款期限(loan_period)作为参数,并返回一个包含月供、支付利息和还款总额的字典。

  2. calculate_loan() 函数是主函数,它通过循环让用户选择贷款类型并输入相应的信息,然后调用 payment_loan() 函数计算相应的贷款信息。根据不同的贷款类型,选择不同的利率和贷款金额,最后将计算结果显示给用户。

  • 如果选择贷款类型为 "1"(商业贷款)或 "2"(公积金贷款),则要求用户输入贷款金额和贷款期限,并根据贷款期限设置相应的利率。然后调用 payment_loan() 函数计算贷款信息,并将结果存储在 payment 字典中。

  • 如果选择贷款类型为 "3"(组合贷款),则要求用户分别输入商业贷款金额和公积金贷款金额,以及贷款期限。根据贷款期限设置相应的利率,分别调用 payment_loan() 函数计算商业贷款和公积金贷款的贷款信息,并将结果存储在 payment1payment2 字典中。然后,将两个字典中对应键的值相加,并将合并后的结果存储在 payment 字典中。

  • 最后,根据计算得到的贷款信息,使用格式化字符串将每月月供、支付利息和还款总额输出给用户。

    实际效果:

     

     

     

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python编写的房贷计算器功能小案例

    发表评论