为了账号安全,请及时绑定邮箱和手机立即绑定

学习 Python 2 Codeacademy,“超市的一天”

学习 Python 2 Codeacademy,“超市的一天”

慕村225694 2022-07-12 09:31:25
我正在编写一个基本的 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改变其中任何一个的值。

因此,您只需要正确添加total2total,并将结果实际放入total而不是打印它:

total = total + total2


查看完整回答
反对 回复 2022-07-12
  • 1 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信