【Python】一个房贷计算器功能的小案例

news/2024/11/23 0:14:20/

题目要求:

房贷计算公式如下:
〉每月月供参考=贷款金额×[月利率×(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()

实现思路:

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

  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 字典中。

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

实际效果:

 

 

 


http://www.ppmy.cn/news/102638.html

相关文章

【华为OD统一考试B卷 | 100分】执行时长(C++ Java JavaScript Python)

文章目录 题目描述输入描述输出描述ACM输入输出模式用例机考代码查重C++javascriptjavapython题目描述 为了充分发挥GPU[算力],需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。 假设GPU最多一次执行n个任务,…

addr2line 使用,定位kernel panic 代码位置

在kernel崩溃时,方便定位代码。 需要打开kernel配置CONFIG_DEBUG_INFO。 需要有System.map和vmlinux文件,一般在out目录。 一般panic的时候会有给出panic的指针,如下down_write。 el1_data说明发生异常了,进入和entry.S文件&a…

NFTScan | 05.22~05.28 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2023.05.22 ~ 2023.05.28 NFT Hot News:NFT 热点资讯 01/ 数据:24 小时内两巨鲸共抛售 349 枚 MAYC NFT 5 月 22 日,Debank 数据显示,近 …

开源2.4g遥控小飞机控制板

原理图 主控 6轴IMU 2.4G通信 电机驱动 特性 主控采用STM32F103CBT6,外设资源比较丰富,国产替代也很容易。红绿双色LED,GPIO控制,可用来提示程序运行状态。1个复位按键,1个用户按键可以用作输入。SWD&UART调试接…

GPT Demo 分享|日不落直播间接入虚拟人AI互动

摘要 虚拟人和数字人是人工智能技术在现实生活中的具体应用,它们可以为人们的生活和工作带来便利和创新。在直播间场景里,虚拟人和数字人可用于直播主播、智能客服、营销推广等。接入GPT的虚拟人像是加了超强buff,具备更强大的自然语言处理能…

常用的数字高程模型(DEM)数据介绍,附免费下载

常用的数字高程模型(DEM)数据:​ ETOPO(1.8千米) ETOPO是一种地形高程数据,由NGDC美国地球物理中心发布,与大多数高程数据不同的是,它还包含海底地形数据。 SRTM15(450…

视频编辑软件:迅捷视频工具箱

这是一款功能强大、易于使用的视频编辑工具,支持视频剪辑、视频转换、音频转换、视频压缩、视频水印、字幕贴图等实用功能,可以帮助你制作出高质量的视频作品。(传送门:https://www.xunjiepdf.com/xjspgjx) 功能简介 …

Angular Highcharts教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Angular Highcharts是一个基于Angular的开源组件,可在Angular应用程序中提供优雅且功能丰富的高图表可视化,并可与Angular组件无缝配合使用。 Angular Highcharts入门教程 - 从简单的步骤了解Angular Highcharts,从基本到高级概念…