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

Python控制台输出差异疑问:第二段代码为何未输出累计总值?

为什么第二段Python代码最终输出total为0而非累计总值?

先看两段代码的差异及输出:

第一段代码(正确累计)

编辑器代码:

prices = {"banana": 4,"apple": 2,"orange": 1.5,"pear": 3}

stock = {"banana": 6, "apple": 0, "orange": 32, "pear": 15}

total = 0
for food in prices:
  print prices[food] * stock[food]
  total = total + prices[food] * stock[food]
print total

控制台输出:

48.0
45
24
0
117.0

第二段代码(出现问题)

编辑器代码:

prices = {"banana": 4,"apple": 2,"orange": 1.5,"pear": 3}

stock = {"banana": 6, "apple": 0, "orange": 32, "pear": 15}

total = 0
for food in prices:
  total = prices[food] * stock[food]
  print total
  total = total + prices[food] * stock[food]
print total

控制台输出:

48.0
45
24
0
0

问题根源

第二段代码的循环逻辑完全错误:

  • 每次循环开头,你直接把total赋值为当前食物的单价×库存,这一步直接覆盖了之前的累计值
  • 后续的total = total + 单价×库存只是把当前食物的总价翻倍,并没有累计之前的总和
  • 最后一次循环处理的是apple,它的单价×库存为0,循环结束后total就被留在了0这个值,最终打印自然是0

而第一段代码是把当前食物的总价累加到total上,不会覆盖之前的累计值,因此能得到正确的总和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:50:22