我正在和codeaccademy一起学习python,任务是拿两个给定的字典(一个是食物和购买价格的列表+第二个是相同食物的列表,但是有库存量),然后计算如果所有的食物都卖了,我会有多少收入。在
一开始,我收到了这个错误消息"can't multiply sequence by non-int of type 'list'"
,我觉得这很奇怪,因为我调用的值是数字?但是好的,然后我尝试使用float函数转换字符串(在计算时使用float(quan)
和{"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)
还有一个求和函数:还有一个要编辑的循环?因为我应该找到一个单一的最终价值,如果一切都能卖出去
一种方法是仅循环关键点:
虽然在您的例子中,两个字典都有相同的键,但是我添加了一个条件来检查
prices
中的每个键是否也在stock
中。然后,假设是,将字典值相乘。在将所有值相加
^{pr2}$如果你想包括
^{3}$或者如果你想要多行:
cost
和{或者,如果你愿意,你可以用听写理解来让结果更清楚:
^{pr2}$您正在将
quan
设置为dict中所有值的列表。这不是您想要的;您正在寻找与name
对应的单个值作为键。在相关问题 更多 >
编程相关推荐