我正在编写一个基本的 python 2 教程,以下代码作为正确答案提供:total=0prices = { "banana" : 4, "apple" : 2, "orange" : 1.5, "pear" : 3,}stock = { "banana" : 6, "apple" : 0, "orange" : 32, "pear" : 15,}for fruit in prices: print fruit print "price: %s" % prices[fruit] print "stock: %s" % stock[fruit] total = total + prices[fruit] * stock[fruit] # pretend this line is bolded print total #prints sum of total (0) and prices multiplied by stock (117). Equals 117. 我想知道的是为什么下面的代码替换倒数第二行(在上面的块中加粗)返回零而不是返回 117。total2 = prices[fruit] * stock[fruit]print total2 + total #should be total2(117) plus total(0). Equals 117谁能告诉我为什么python逻辑将变量“total”与“total2”区别对待。我怀疑这与以下事实有关:总价格乘以库存之一等于零,而零乘以任何东西都为零。在我看来,我应该能够创建一个全新的变量(total2),其中包含价格 X 股票的结果,然后将其添加到总数中。对于代码中缺少缩进,我深表歉意,似乎无法让代码完全按照格式发布。
1 回答
浮云间
TA贡献1829条经验 获得超4个赞
第一个片段和第二个片段之间的区别在于,在第二个片段中,您永远不会将任何内容分配给total
,而只会分配给total2
。
total2 = prices[fruit] * stock[fruit] print total2 + total
请注意,当您设置total2
为特定值时,您并没有告诉 python 设置total
为任何其他值。打印 和 的总和total
不会total2
改变其中任何一个的值。
因此,您只需要正确添加total2
到total
,并将结果实际放入total
而不是打印它:
total = total + total2
添加回答
举报
0/150
提交
取消