房贷计算器,妥妥的数学计算

根据给出的公式,编写房贷计算器。妥妥的数学计算,把数学公式“翻译”成代码就好。


(笔记模板由python脚本于2024年01月06日 18:08:55创建,本篇笔记适合初具基本编程能力的coder翻阅)


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


根据题目给出的公式
房 贷 计 算 器
(用代码“翻译”数学公式就好)


本文质量分:

91

本文地址: https://blog.csdn.net/m0_57158496/article/details/135429982

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 房贷计算器
    • 1、题目描述
    • 2、算法解析
      • 2.1 简陋版
    • 3、“经典”版
      • 3.1 输入贷款金额和期限
      • 3.2 贷款类型选择
      • 3.3 据贷款类型和期限确定贷款年利率
    • 4、完整源码(Python)


◆ 房贷计算器


1、题目描述


  • 题目描述截屏图片
    在这里插入图片描述

题目来源于CSDN问答社区提问“房贷计算器”


房贷计算公式如下:

每 月 月 供 参 考 = 贷 款 金 额 × [ 月 利 率 × ( 1 + 月 利 率 ) 还 款 月 数 ] ÷ [ ( 1 + 月 利 率 ) 还 款 月 数 − 1 ] 每月月供参考 = 贷款金额 × [月利率 × (1 + 月利率) ^ {还款月数}] ÷ [(1 + 月利率) ^ {还款月数} - 1] =×[×(1+)]÷[(1+)1]
还 款 总 额 = 每 月 月 供 参 考 × 期 限 × 12 还款总额 = 每月月供参考 × 期限 × 12 =××12
支 付 利 息 = 还 款 总 额 − 贷 款 金 额 × 10000 支付利息 = 还款总额 - 贷款金额 × 10000 =×10000
  以上计算方式中月利率( 月 利 率 = 利 率 ÷ 12 月利率 = 利率 ÷ 12 =÷12)指以月为计息周期计算的利息。不同贷款类型的利率是不同的:对于商业贷款而言,五年以下(含五年)的贷款利率是4.75%,五年以上的贷款利率是4.90%;对于公积金贷款利率而言,五年以下(含五年)的贷款利率是2.75%,五年以上的利率是3.25%。

  本案例要求编写程序,根据以上计算方式开发一个房贷计算器。


  这“支付利息”怎么理解啊,怎么感觉那后面的“$ × 10000$”不大对劲哩?



回页目录


2、算法解析


  这个题目就是妥妥的数学计算,把给出的公式“翻”成代码就大功告成。😋
&emsp&emk但不是没有一点技巧,“月供参考”公式中有两个相同的部分“ ( 1 + 月 利 率 ) 还 款 月 数 (1 + 月利率) ^ {还款月数} (1+)”,如果直接代入数据,相同的计算在一个公式中分别计算两次,这是不Python的行为。我们可以先行计算“ ( 1 + 月 利 率 ) 还 款 月 数 (1 + 月利率) ^ {还款月数} (1+)”的值赋给一个变量保存,在公式中直接引用变岂不更妙!

“月供参考”公式可以简化为:

e x p o n e n t = ( 1 + 月 利 率 ) 还 款 月 数 exponent = (1 + 月利率) ^ {还款月数} exponent=(1+)
每 月 月 供 参 考 = 贷 款 金 额 × ( 月 利 率 × e x p o n e n t ) ÷ ( e x p o n e n t − 1 ) 每月月供参考 = 贷款金额 × (月利率 × exponent) ÷ (exponent - 1) =×(×exponent)÷(exponent1)


2.1 简陋版


  贷款年利率、贷款金额、贷款期限都从键盘输入,简单实现。


  • 代码运行效果截屏图片
    在这里插入图片描述

Python代码

#!/sur/bin/nve python
# coding: utf-8
def calculatorMortgage(rate, money, year):
    ''' 房贷计算器 '''
    rateMonth = rate/12/100 # 月利率。
    months = 12*year # 贷款期限。
    exponent = (1+rateMonth)**months # 月供计算指数
    monthly = (money*(rateMonth*exponent))/(exponent-1) # 月供。
    moneys = monthly*months # 还款总额。
    return round(moneys, 2), round(moneys-money, 2) # 返回还款总额和支付利息。
if __name__ == '__main__':
    data = input(f"\n输入年利率、贷款金额、贷款期限:\n{'':>10}(如4.75 50000 3):\n\n{'':>11}$ ").strip()
    data = map(eval, data.split())
    result = calculatorMortgage(*data)
    print(f"\n输出:\n应还总金额:{result[0]:.2f}\n利息:{result[1]}")



回页目录


3、“经典”版


  只输入贷款金额和期限,贷款类型选择,由贷款类型和期限确定贷款利率。


3.1 输入贷款金额和期限

  • 贷款金额和期限输入
    在这里插入图片描述

    错误输入将退出程序
    在这里插入图片描述

Python代码


    title = f"\033[2J{' 房贷计算器 ':=^35}\n\n"
    data = input(f"{title}\n{' 输入贷款金额、贷款期限(年) ':^28}\n{'':~^40}\n{'(如20000 3)':^39}\n\n{'':>13}$ ").strip()

    try:
        money, year = map(eval, data.split())
    except Exception as error:
        print(f"\n{' 输入错误!':~^35}\n\n\n{'':=^40}\n")
        exit()



回页目录


3.2 贷款类型选择

  • 代码运行效果截屏图片
    在这里插入图片描述

    选择错误,重试。直到选对
    在这里插入图片描述

Python代码


def isFlag():
    ''' 贷款类型选择 '''
    title = f"\033[2J{' 贷款类型选择 ':=^34}\n\n"
    flag = input(f"{title}\n{'1. 商业贷款  2. 公积金贷款':^31}\n{'':~^40}\n\n{'':>6}选择序号:").strip()
    
    if flag not in ('1', '2'):
        input(f"\n\n{' 选择错误!':^35}\n{'':~^40}\n{'(请重试)':^36}")
        isFlag()
    else:
        return flag 



回页目录


3.3 据贷款类型和期限确定贷款年利率


  • 代码运行效果截屏
    在这里插入图片描述

贷款利率确定代码


    flag = isFlag() # 选择贷款类型。
    
    if flag == '1':
        rate = 4.9 if year > 5 else 4.75 # 商业贷款。
    else:
        rate = 3.25 if year > 5 else 2.75 # 公积金贷款。

计算输出代码


    rateMonth = rate/12/100 # 月利率。
    months = 12*year # 贷款期限。
    exponent = (1+rateMonth)**months # 月供计算指数
    monthly = (money*(rateMonth*exponent))/(exponent-1) # 月供。
    moneys = monthly*months # 还款总额。
    print(f"{title}\n{'':>12}年利率:{rate}\n{'':>14}贷款:{money:.2f}\n{'':>14}期限:{year}年\n\n{'':>8}应还总金额:{moneys:.2f}\n{'':>10}其中利息:{moneys-money:.2f}\n\n{'':=^40}")



回页目录


4、完整源码(Python)

(源码较长,点此跳过源码)

# 简陋版 #
#!/sur/bin/nve python
# coding: utf-8
def calculatorMortgage(rate, money, year):
    ''' 房贷计算器 '''
    rateMonth = rate/12/100 # 月利率。
    months = 12*year # 贷款期限。
    exponent = (1+rateMonth)**months # 月供计算指数
    monthly = (money*(rateMonth*exponent))/(exponent-1) # 月供。
    moneys = monthly*months # 还款总额。
    return round(moneys, 2), round(moneys-money, 2) # 返回还款总额和支付利息。
if __name__ == '__main__':
    data = input(f"\n输入年利率、贷款金额、贷款期限:\n{'':>10}(如4.75 50000 3):\n\n{'':>11}$ ").strip()
    data = map(eval, data.split())
    result = calculatorMortgage(*data)
    print(f"\n输出:\n应还总金额:{result[0]:.2f}\n利息:{result[1]}") # 年利率4.75,借5w,三年。

# 经典版 #
#!/sur/bin/nve python
# coding: utf-8


def isFlag():
    ''' 贷款类型选择 '''
    title = f"\033[2J{' 贷款类型选择 ':=^34}\n\n"
    flag = input(f"{title}\n{'1. 商业贷款  2. 公积金贷款':^31}\n{'':~^40}\n\n{'':>6}选择序号:").strip()
    
    if flag not in ('1', '2'):
        input(f"\n\n{' 选择错误!':^35}\n{'':~^40}\n{'(请重试)':^36}")
        isFlag()
    else:
        return flag 


def calculatorMortgage(): # 形参分别是年利率、贷款金额、贷款期限(年)。
    ''' 房贷计算器 '''
    title = f"\033[2J{' 房贷计算器 ':=^35}\n\n"
    data = input(f"{title}\n{' 输入贷款金额、贷款期限(年) ':^28}\n{'':~^40}\n{'(如20000 3)':^39}\n\n{'':>13}$ ").strip()

    try:
        money, year = map(eval, data.split())
    except Exception as error:
        print(f"\n{' 输入错误!':~^35}\n\n\n{'':=^40}\n")
        exit()

    flag = isFlag() # 选择贷款类型。
    
    if flag == '1':
        rate = 4.9 if year > 5 else 4.75
    else:
        rate = 3.25 if year > 5 else 2.75

    rateMonth = rate/12/100 # 月利率。
    months = 12*year # 贷款期限。
    exponent = (1+rateMonth)**months # 月供计算指数
    monthly = (money*(rateMonth*exponent))/(exponent-1) # 月供。
    moneys = monthly*months # 还款总额。
    print(f"{title}\n{'':>12}年利率:{rate}\n{'':>14}贷款:{money:.2f}\n{'':>14}期限:{year}年\n\n{'':>8}应还总金额:{moneys:.2f}\n{'':>10}其中利息:{moneys-money:.2f}\n\n{'':=^40}")

if __name__ == '__main__':
    calculatorMortgage()



回页首


上一篇:  “火火的”动态(集结我的人气Blink索引列表,Python脚本自动生成)
下一篇: 



我的HOT博:

  本次共计收集289篇博文笔记信息,总阅读量44.72w。数据采集于2023年12月11日 23:07:13,用时5分11.8秒。阅读量不小于4.0k的有17篇。

  1. ChatGPT国内镜像站初体验:聊天、Python代码生成等
    地址:https://blog.csdn.net/m0_57158496/article/details/129035387
    浏览阅读:6.2w
    点赞:127 收藏:809 评论:71
    (本篇笔记于2023-02-14 23:46:33首次发布,最后修改于2023-07-03 05:50:55)

  2. 让QQ群昵称色变的神奇代码
    地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    浏览阅读:5.8w
    点赞:24 收藏:86 评论:17
    (本篇笔记于2022-01-18 19:15:08首次发布,最后修改于2022-01-20 07:56:47)

  3. Python列表(list)反序(降序)的7种实现方式
    地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    浏览阅读:9.9k
    点赞:5 收藏:30 评论:8
    (本篇笔记于2022-12-11 23:54:15首次发布,最后修改于2023-03-20 18:13:55)

  4. pandas 数据类型之 DataFrame
    地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    浏览阅读:9.4k
    点赞:7 收藏:34 
    摘要:pandas 数据类型之 DataFrame_panda dataframe。
    (本篇笔记于2022-05-01 13:20:17首次发布,最后修改于2022-05-08 08:46:13)

  5. 个人信息提取(字符串)
    地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    浏览阅读:7.7k
    摘要:个人信息提取(字符串)_python个人信息提取。
    (本篇笔记于2022-04-18 11:07:12首次发布,最后修改于2022-04-20 13:17:54)

  6. Python字符串居中显示
    地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    浏览阅读:7.2k
    评论:1
  7. 罗马数字转换器|罗马数字生成器
    地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    浏览阅读:7.2k
    (本篇笔记于2022-01-19 23:26:42首次发布,最后修改于2022-01-21 18:37:46)

  8. 斐波那契数列的递归实现和for实现
    地址:https://blog.csdn.net/m0_57158496/article/details/122355295
    浏览阅读:5.6k
    点赞:4 收藏:2 评论:8
  9. 回车符、换行符和回车换行符
    地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    浏览阅读:5.5k
    点赞:2 收藏:3 
    摘要:回车符、换行符和回车换行符_命令行回车符。
    (本篇笔记于2022-02-24 13:10:02首次发布,最后修改于2022-02-25 20:07:40)

  10. python清屏
    地址:https://blog.csdn.net/m0_57158496/article/details/120762101
    浏览阅读:5.3k
  11. 练习:字符串统计(坑:f‘string‘报错)
    地址:https://blog.csdn.net/m0_57158496/article/details/121723096
    浏览阅读:5.1k
  12. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
    地址:https://blog.csdn.net/m0_57158496/article/details/121645399
    浏览阅读:5.1k
    点赞:14 收藏:44 
  13. 我的 Python.color() (Python 色彩打印控制)
    地址:https://blog.csdn.net/m0_57158496/article/details/123194259
    浏览阅读:4.6k
    点赞:2 收藏:8 
    摘要:我的 Python.color() (Python 色彩打印控制)_python color。
    (本篇笔记于2022-02-28 22:46:21首次发布,最后修改于2022-03-03 10:30:03)

  14. 练习:生成100个随机正整数
    地址:https://blog.csdn.net/m0_57158496/article/details/122558220
    浏览阅读:4.6k
    (本篇笔记于2022-01-18 13:31:36首次发布,最后修改于2022-01-20 07:58:12)

  15. 密码强度检测器
    地址:https://blog.csdn.net/m0_57158496/article/details/121739694
    浏览阅读:4.4k
    (本篇笔记于2021-12-06 09:08:25首次发布,最后修改于2022-11-27 09:39:39)

  16. 罗马数字转换器(用罗马数字构造元素的值取模实现)
    地址:https://blog.csdn.net/m0_57158496/article/details/122608526
    浏览阅读:4.2k
    (本篇笔记于2022-01-20 19:38:12首次发布,最后修改于2022-01-21 18:32:02)

  17. 练习:班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)
    地址:https://blog.csdn.net/m0_57158496/article/details/124424935
    浏览阅读:4.0k
    摘要:班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)_生日模拟问题,计算频率,并画出随着试验次数n的增大,频率和理论概率的 关系图。
    (本篇笔记于2022-04-26 12:46:25首次发布,最后修改于2022-04-27 21:22:07)

推荐条件 阅读量突破4.0k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/298930.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

服务器GPU温度过高挂掉排查记录

服务器GPU挂掉 跑深度学习的代码的时候发现中断了。通过命令查看: nvidia-smi显示 Unable to determine the device handle for GPU 0000:01:00.0: Unknown Error。感觉很莫名其妙。通过重启大法之后,又能用一段时间。 shutdown -r now但是过了一个小…

遗传算法(GA)、模拟退火算法(SAA)、蚁群算法(ACO)、粒子群算法(PSO)优缺点汇总

遗传算法 优点: 与问题领域无关且快速随机的搜索能力,不会陷入局部最优解;搜索从群体出发,具有潜在的并行性,提高运行速度,鲁棒性高;搜索使用评价函数启发,过程简单;使…

基于Java实现全功能电子商城

🍅文末获取源码联系🍅 👇🏻 精彩项目推荐订阅👇🏻 不然下次找不到哟 基于SpringBoot的旅游网站 基于SpringBoot的MusiQ音乐网站 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及…

小游戏实战丨基于PyGame的俄罗斯方块小游戏

文章目录 写在前面PyGame五子棋注意事项系列文章写在后面 写在前面 本期内容:基于pygame的俄罗斯方块小游戏 下载地址:https://download.csdn.net/download/m0_68111267/88700182 实验环境 python3.11及以上pycharmtkinter PyGame Pygame是一个非常…

Java设计模式-模板方法模式

目录 一、豆浆制作问题 二、模板方法模式基本介绍 三、原理类图 四、模板方法模式解决豆浆制作问题 五、模板方法模式的钩子方法 六、模板方法模式在Spring框架应用的源码分析 七、注意事项和细节 一、豆浆制作问题 编写制作豆浆的程序,说明如下 : 1) 制作…

案例098:基于微信小程序的电子购物系统的设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

【大数据进阶第三阶段之Datax学习笔记】使用阿里云开源离线同步工具DataX 实现数据同步

【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax概述 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax快速入门 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图 【大数据进阶第三阶段之Datax学习笔记】使用…

RH850P1X芯片学习笔记-A/D Converter (ADCF)

文章目录 Features of RH850/P1x-C ADCFNumber of UnitsRegister Base AddressClock SupplyInterrupts and DMAHardware ResetExternal Input/Output SignalsVirtual Channel OverviewFunctional OverviewBlock DiagramPhysical Channels, Virtual Channels and Scan Groups Re…

SPRING BOOT发送邮件验证码(Gmail邮箱)

SPRING BOOT邮件发送验证码 一、Gmail邮箱配置 1、进入Gmail(https://mail.google.com) 2、打开谷歌右上角设置 3、启用POP/IMP 4、启用两步验证(https://myaccount.google.com/security) 5、建立应用程式密码 6、复制保存应用程式密码 二、代码 1、引入依赖 <d…

【LMM 012】TinyGPT-V:24G显存训练,8G显存推理的高效多模态大模型

论文标题&#xff1a;TinyGPT-V: Efficient Multimodal Large Language Model via Small Backbones 论文作者&#xff1a;Zhengqing Yuan, Zhaoxu Li, Lichao Sun 作者单位&#xff1a;Anhui Polytechnic University, Nanyang Technological University, Lehigh University 论文…

Window端口占用处理

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…

C#编程-实现函数重载

考虑一个示例&#xff1a;您必须编写一个程序来实现计算器的功能。计算器执行各种运算&#xff0c;例如数字的加、减及乘等。可以对任何类型的数据执行这些运算。这是否意味着您必须定义单独的函数名&#xff08;如addInteger、addFloat和addDoublie&#xff09;对每种此类数字…

VMware VCP+VCAP持续通过

稳定通过&#xff0c;安全可靠

LOG滤波器原理探究---计算机视觉和特征检测

先来看几个滤波器公式&#xff1a; 高斯滤波器&#xff1a; G ( x , y ; σ ) 1 2 π σ 2 e − x 2 y 2 2 σ 2 G(x,y;\sigma) \frac{1}{2 \pi \sigma^2} e^{-\frac{x^2 y^2}{2\sigma^2}} G(x,y;σ)2πσ21​e−2σ2x2y2​ 图像的二阶导数&#xff1a; ∇ 2 f ∂ 2 f ∂…

看图识熊(二)

使用Tools for AI封装onnx模型并推理 进行这一步之前&#xff0c;请确保已正确安装配置了Visual Studio 2017 和 Microsoft Visual Studio Tools for AI环境。 项目的代码也可以在这里找到&#xff0c;下面的步骤是带着大家从头到尾做一遍。 界面设计 创建Windows窗体应用(…

ssm基于Java Web的怀旧唱片售卖系统论文

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装怀旧唱片售卖系统软件来发挥其高效地信息处理的作用&#x…

k8s集群部署Harbor镜像仓库

部署k8s集群参考 https://blog.csdn.net/m0_59933574/article/details/134936188?spm1001.2014.3001.5502https://blog.csdn.net/m0_59933574/article/details/134936188?spm1001.2014.3001.5502 安装Harbor 准备一台干净服务器&#xff0c;关闭防火墙与selinux 下载dock…

探索 2024 年:未来可能带来的新奇事物

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

XML技术分析02

一、XML——树形结构 <?xml version"1.0" encoding"ISO-8859-1"?><note><to>George</to><from>John</from><heading>Reminder</heading><body>Dont forget the meeting!</body> </note…

LeetCode 42:接雨水

一、题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,…