python - 为什么变量在循环中调用后会发生变化?

标签 python loops dictionary for-loop

需要说明的是,我是一个绝对的初学者,我正在自学 Python。所以如果这个问题是显而易见的idk。另外,如果你能推荐我一些东西来学习 python 逻辑,我将不胜感激。

因此,该变量被命名为 total 并且等于零。当我在循环后打印总数时,总数变为 117。

为什么当我在循环后调用总数时它会改变?它不应该保持不变,因为它不在循环内吗?

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

我希望总数保持等于 0。

最佳答案

循环不属于自己的作用域,所以循环内的total和循环外的total是一样的,你可以通过在循环内外打印id(total)来查看,发现是同一个

关于python - 为什么变量在循环中调用后会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57489770/

相关文章:

python - 比较数据帧的所有数字列对

python - 在 Python 中对一系列日期进行分组

python - 字符串到日期 - 格式字符串问题

python - 如何在多个字典中只保留全局最大值的键值对?

c# - 使用另一个字典的键按值对字典进行排序

c++ - 根据对值对多维映射进行排序

c++ - 将数据读取到 map 中的问题

python - 使用 python arduino 移动 Helm 机

java - 在自定义数组列表中搜索最有效

java - 带迭代的 While 循环