You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码打印结果不一致,咨询第16行与第17行的逻辑差异

代码差异解析

核心差异来自investment_return变量的计算时机和是否动态更新,具体区别如下:

  • 动态计算 vs 固定常量
    第16行每次循环都会用当前最新的current_savings值实时计算当月投资收益,收益额会随着存款总额增长同步上涨,符合复利计算逻辑。
    而你定义的investment_return变量是在while循环外部、current_savings初始值为0的时候计算的,计算结果固定为0 * 0.04 / 12 = 0,且整个循环过程中没有更新这个变量的值,所以第17行每次累加的投资收益都是固定的0,完全没有计入实际的理财收益。
  • 逻辑正确性差异
    第16行是符合业务逻辑的正确写法:每月理财收益按照当月月初的存款总额计息,利滚利计算。第17行相当于完全忽略了投资收益,只累加每月固定存款,最终计算出来的存够首付的月数会远大于正确结果。

如果你想保留investment_return变量的写法,只需要把变量更新逻辑挪到循环内部即可,修改后和第16行逻辑完全等价:

while current_savings < portion_down_payment:
    # 每次循环先计算当月的投资收益
    investment_return = current_savings * r / 12
    current_savings += investment_return + (portion_saved*monthly_salary)
    months_to_save += 1

内容的提问来源于stack exchange,提问作者Sir Gal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:36:02