我只是在学习python并使用codecademy来学习基础知识,但我坚持练习,希望你们能够学习。
课程首先要我定义一个名为compute_bill
的函数,然后给它一个food
的论证。
然后为total
提供初始值0
,然后为item
列表中的每个food
添加其值total
,最后返回total
。
这是预先写好的价格和库存清单。
shopping_list = ["banana", "orange", "apple"]
stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}
这是我写的小函数,但当然不接受它说 compute_bill(['apple'])导致TypeError:+ =''int'和'不支持的操作数类型str'
def compute_bill(food):
total = 0
for item in food:
total += item
return total
对于大多数人来说这可能是一个非常愚蠢的问题,但我不能理解它的问题是什么。
答案 0 :(得分:2)
你犯了几个错误:
1)"食物"是一个清单。每个元素都有一个字符串。你不能在Python中为一个数字添加一个字符串(它没有意义)。
2)你真正想要做的是使用来自" food"作为关键,然后从"价格"获得价格这是一本字典。
一个提示:获取元素的值' apple'从价格来看,你必须做类似的事情:
apple_price = prices['apple']
这将为您提供价格'存储在密钥' apple'下,这是一个等于2的整数。您可以使用此价格来计算总数。
另一个暗示:迭代"食物"并使用这些元素从"价格"中检索相应的价格。字典。
祝你好运:)答案 1 :(得分:1)
你几乎拥有它。 for循环遍历food []数组中的每个字符串,使用该字符串,您需要在价格字典中查找价格。
def compute_bill(food):
total = 0
for key in food:
total += prices[key]
return total
答案 2 :(得分:1)
我希望我能给你一个赞成。非常感谢您的回答和建议,我刚才看到我有多傻。
def compute_bill(food):
total = 0
for key in food:
total += prices[key]
return total
这只是诀窍
答案 3 :(得分:0)
尝试:
total += prices[item]
问题中的代码根本不是指价格。
答案 4 :(得分:0)
def compute_bill(food) :
total = 0
for item in food :
if stock[item] != 0 :
total = total + prices[item]
#you also need to update the stock table i won't do it here
return total
food = {"banana","apple","orange"}
print compute_bill(food)