我正在尝试使用 codeacademy 学习 python,任务是获取两个给定的字典(一个是食物列表和购买价格 + 第二个是相同食物的列表,但库存数量)并计算如何如果所有的食物都卖掉,我会有很多收入。
起初,我收到此错误消息"can't multiply sequence by non-int of type 'list'"
。我认为这很奇怪,因为我调用的值是数字?o_O 但没关系,然后我尝试使用 float 函数转换字符串(使用float(quan)
和float(cost)
计算时)。但是然后,我会收到此错误:"TypeError: float() argument must be a string or a number"
我也尝试通过做来转换,float(prices.value())
但这也给出了相同的错误消息。我认为错误在于我如何使用 float 函数而不是循环,因为我试图只打印出 cost 和 quan 并且输出看起来很正常。
非常感谢您的帮助。
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3,
}
name, cost = prices.keys(), prices.values()
stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
items, quan = stock.keys(), stock.values()
for name, cost in prices.iteritems():
print float(cost) * float(quan)
编辑:另外,是否有对循环求和的功能?因为如果一切都卖掉,我应该找到一个单一的最终价值