我一直在为Codecademy做一个课程,它给了我这个任务:
定义一个函数
compute_bill
,它将一个参数food
作为输入。 在函数中,创建一个初始值为零的变量total
。 对于food
列表中的每个项目,请将该项目的价格添加到total
。 最后,返回总数。
这是我的代码:
def compute_bill(food):
total=0
for x in food:
total+=x
return total
这是他们给我的错误:
compute_bill(['apple'])导致TypeError:不支持的操作数 类型为+ =:'int'和'str'
我不知道我做错了什么。
答案 0 :(得分:7)
您没有正确阅读作业:
对于食物清单中的每个项目,将该项目的价格添加到总数中。
您要添加商品本身,而不是商品的价格。
你可能有一些方法可以找到每个项目的价格,比如字典。您无法添加'apple'
字符串,但如果苹果价格为0.10
(10美分),那么您可以将0.10
添加到total
}。
例如,如果你有一个名为prices
的字典,你可以这样做:
prices = {
'apple': 0.10,
'pear': 0.15,
'cumquat': 0.50,
}
def compute_bill(food):
total = 0
for item in food:
total += prices[item]
return total
请注意,我将x
更改为item
,这是一个与您的作业文字相符的更具描述性的变量名称。
答案 1 :(得分:2)
你应该总结每种食物的价格,而不是食物本身的价格。假设你有一本价格字典,你的代码应该是这样的:
def compute_bill(food):
total = 0
for x in food:
total += prices[x]
return total
答案 2 :(得分:0)
错误告诉您:您无法添加整数和字符串。这是因为您要添加总计(整数)和食物本身,而不是价格。您可以使用your_dictionary[food]
解决此问题,而不仅仅是food
。希望这有帮助!
答案 3 :(得分:0)
这是正确的代码,我花了很长时间来修复它,但确保它看起来与此相似:
def compute_bill(food):
total = 0
for each in food:
total += prices[each]
return total