无法解决初学者级别的python练习

时间:2015-12-23 18:08:46

标签: python

我只是在学习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

对于大多数人来说这可能是一个非常愚蠢的问题,但我不能理解它的问题是什么。

5 个答案:

答案 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)