m0_74071310 2022-10-26 17:29 采纳率: 53.8%
浏览 986
已结题

python存款买房1问题解答

假设你每个月都是月初发工资,同时会收到上一个月的存款利息。假设所需的首付款百分比为0.30(30%),
存款年利率interest_rate 为2.25%,每半6 个月加一次薪水,修改你的程序,计算存够首付需要多少个月。
你的程序要给出以下提示并要求用户输入相应的数值:

  1. 请输入总房价:total_cost
  2. 请输入年薪:annual_salary
  3. 请输入月存款比例:portion_saved
  4. 每半年加薪比例:semi_annual_raise
  5. 请输入存款年利率:
    测试用例:
    请输入总房价:1000000
    请输入年薪:156800
    请输入月存款比例:60
    请输入加薪比例:7

total_cost = float(input()) total_cost为当前房价
annual_salary = float(input()) 年薪
portion_saved = float(input()) / 100 月存款比例,输入30转为30%
semi_annual_raise = float(input()) /100 输入每半年加薪比例,输入7转化为7%

portion_down_payment = 0.3 # 首付比例,浮点数
down_payment = portion_down_payment * total_cost # 首付款
print('首付',down_payment)

current_savings = 0
number_of_months = 0

补充你的代码
month_salary=annual_salary / 12
month_portion=month_salary * portion_saved
计算多少个月才能存够首付款,结果为整数,不足1月按1个月计算,即向上取整
while True:
current_savings=current_savings+month_portion
number_of_months+=1
current_savings=current_savings*(1+0.025/12)
if number_of_months % 6==0:
month_portion=month_portion*(1+semi_annual_raise)
if number_of_months % 12==0:
print(f'第{number_of_months}个月月末有{int(current_savings):,}元存款')
if current_savings>=down_payment:
print(f'需要{number_of_months}个月可以存够首付')
break
请各位学长学姐 为我这个计算有点问题

img


计算结果应该是这样

  • 写回答

1条回答 默认 最新

  • 往事随风云渐起 2022-10-26 17:51
    关注
    
    total_cost = float(input("请输入总房价: "))  # total_cost为当前房价
    annual_salary = float(input("请输入年薪: "))  # 年薪
    portion_saved = float(input("请输入月存款比例: ")) / 100  # 月存款比例,输入30转为30%
    semi_annual_rise = float(input("请输入加薪比例")) / 100  # 输入每半年加薪比例,输入7转化为7%
    
    portion_down_payment = 0.3  # 首付比例,浮点数
    down_payment = portion_down_payment * total_cost  # 首付款
    print('首付', down_payment)
    month_salary = annual_salary / 12
    current_saving = 0  # 存款金额,从0开始
    number_of_months = 0
    
    rate = 0.0225 / 12
    month = 0
    while current_saving < down_payment:
        month += 1
        # current_saving = current_saving * (1 + rate) + month_salary * portion_saved
        if month % 6 == 0:
            month_salary = month_salary * (1 + semi_annual_rise)
        current_saving = current_saving * (1 + rate) + month_salary * portion_saved  # 计算加薪后的工资要放在这里
        if month % 12 == 0:
            print("第{}个月月末有{:,.0f}元存款".format(month, current_saving))
    print("需要{}个月可以存够首付".format(month))
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月3日
  • 已采纳回答 10月26日
  • 创建了问题 10月26日

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛