题目要求:
房贷计算公式如下:
〉每月月供参考=贷款金额×[月利率×(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 / 12num_payments = loan_period * 12monthly_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_paymentsinterest_payment = total_payment - loan_amount * 10000return{ "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.0475if loan_period > 5:interest_rate = 0.049payment=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.0275if loan_period > 5:interest_rate = 0.0325payment=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.0475if loan_period > 5:interest_rate = 0.049payment1 = payment_loan(interest_rate, loan_amount1, loan_period)interest_rate = 0.0275if loan_period > 5:interest_rate = 0.0325payment2=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()
实现思路:
该代码实现了一个房贷计算器的功能。主要包括以下功能:
-
payment_loan(interest_rate, loan_amount, loan_period)
函数用于计算贷款的月供、支付利息和还款总额。它接受利率(interest_rate)、贷款金额(loan_amount)和贷款期限(loan_period)作为参数,并返回一个包含月供、支付利息和还款总额的字典。 -
calculate_loan()
函数是主函数,它通过循环让用户选择贷款类型并输入相应的信息,然后调用payment_loan()
函数计算相应的贷款信息。根据不同的贷款类型,选择不同的利率和贷款金额,最后将计算结果显示给用户。
-
如果选择贷款类型为 "1"(商业贷款)或 "2"(公积金贷款),则要求用户输入贷款金额和贷款期限,并根据贷款期限设置相应的利率。然后调用
payment_loan()
函数计算贷款信息,并将结果存储在payment
字典中。 -
如果选择贷款类型为 "3"(组合贷款),则要求用户分别输入商业贷款金额和公积金贷款金额,以及贷款期限。根据贷款期限设置相应的利率,分别调用
payment_loan()
函数计算商业贷款和公积金贷款的贷款信息,并将结果存储在payment1
和payment2
字典中。然后,将两个字典中对应键的值相加,并将合并后的结果存储在payment
字典中。
最后,根据计算得到的贷款信息,使用格式化字符串将每月月供、支付利息和还款总额输出给用户。
实际效果: