题目要求:

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

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

实际效果:

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

  1. 【Android笔记41】使用Android实现一个简易版本的购物车小案例

    这篇文章,主要是使用Android实现一个简易版本的购物车小案例. 目录 一.购物车案例 1.1.创建主界面 (1)主界面布局样式 (2)商品列表Fragment

  2. python程序实例教程基础-编程小案例

    编程小案例 本小节实现一个通讯录管理程序,通过这个案例来融会贯通之前所学习的知识,该程序使用到如下知识点: 条件选择 循环 列表 字典 键盘输入 屏幕输出 编写程序 addr-manage.py 实现 ...

  3. uniapp 做的一个房贷计算器

    在支付宝的文档中找到一个比较详细的公式 等额本息计算公式 每月还款额=贷款本金×[月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]总支付利息:总利息=还款月数×每月月供额-贷款本金 ...

  4. python 一个有用的信号控制小程序

    一个有用的信号控制小程序 这个信号控制小程序是我的一个课程作业,要求根据交叉口单点配时理论设计一个小程序,之后用python的wx库实现了可视化. wx的官方文档在这里 信号控制策略 周期时长 未饱和 ...

  5. java 房贷计算器代码_用JAVA编程一个房贷计算器

    求一房贷计算器java源程序 打了个电话给农行的客服(收费的),终于知道公式了..好麻烦的公式...浪费了我15分钟的电话费. 还有在写公式的过程中遇到了计算x的y次方..谁知道java里怎么计算啊? ...

  6. 用JavaScript实现一个简易计算器功能

    简易计算器 文章目录 简易计算器 界面一览 一.需求 二.body创建整体显示外观 三.css样式 四.JavaScript事件函数 五.小结 界面一览 一.需求 1.构建出计算器外观. 2.显示屏跟 ...

  7. Python入门简单概念讲解及其小案例

    列表 # 列表取出数据首字母大写(title函数) # bicycles = ['trek','cannondale','redline','specialized'] # print(bicycle ...

  8. python实现栅格计算器功能

    对于Python不能直接调用arcgis中的栅格计算器工具.但是可以通过使用Raster函数实现. 如下面代码实现了每年12个月做一个累加,然后输出一个年值的功能: for year in range ...

  9. python atm作业详解_Python小案例--ATM系统

    今天偶尔在知乎上看到某大佬用Python写的ATM系统案例,然后观摩了下他的实现思路和源码,感觉受益颇多.于是就根据自己的思路和目前掌握的Python编程基础将ATM实现了一下,以下是案例解析的过程: ...

最新文章

  1. [转]HDR渲染器的实现(基于OpenGL)
  2. debug assertion failed!报错
  3. 牛客题霸 [括号序列] C++题解/答案
  4. javascript date php date,JavaScript Date 知识浅析
  5. Hadoop Yarn事件处理框架源码分析
  6. 绑定touch事件后click无效,vue项目解决棒法
  7. 数据通信与网络有这一篇就够了(概述篇)
  8. 疫情之下, 远程办公软件是如何逆势增长的?
  9. udacity 学java_刷完udacity的JavaScript,我想说……
  10. 数据结构与算法——栈( Stack )
  11. 如何用数学课件制作工具推导圆面积公式
  12. 油猴脚本更改tw样式
  13. 分享88个HTML旅游交通模板,总有一款适合您
  14. 使用OneNote多人分布式共享
  15. antd表格显示分页怎么取消_新买手机号码打电话显示骚扰推销怎么解除取消?...
  16. 金丝桃素白蛋白纳米粒-大肠杆菌血清抗体复合物|凝血因子Ⅷ人血清白蛋白HSA纳米粒|地奥司明人血清白蛋白纳米粒
  17. 【博途】分析德国工程师写的STL中的Any指针 L 16#1002
  18. 学会结构化思维,成为大牛唾手可得
  19. C语言KDF密钥源代码,区块链中的数学-SM2算法与KDF密钥导出函数
  20. 利用jumpstart网络安装solaris 10 sparc u4

热门文章

  1. CSS的2D与3D变换
  2. stm32为什么运行不了linux,stm32用ucos还是linux
  3. 苹果手机拆机与原理图对比分析(设计规范篇)
  4. 使用OperatorHub.io自动化群集上的操作
  5. 数据结果出来了!公众号批量伪原创文章群发霸屏与公众号排名被动引流
  6. 知乎live笔记07 用脑动手学钢琴(成人篇)
  7. 插画、插图网站,免费(商用)
  8. C#获取mp3 Tag信息
  9. 关于软件中头像(图标)保存方式的讨论
  10. 理解并实现摩尔投票算法