计算食品账单的python代码有什么问题?

计算食品账单的python代码有什么问题?,python,Python,我一直在做一门关于Codecademy的课程,它给了我这个任务: 定义一个函数compute\u bill,该函数将一个参数food作为输入。 在函数中,创建一个初始值为零的变量total。 对于食品列表中的每个项目,将该项目的价格添加到总计。 最后,返回总数 这是我的代码: def compute_bill(food): total=0 for x in food: total+=x return total 这就是他们给我的错误: compute_

我一直在做一门关于Codecademy的课程,它给了我这个任务:

定义一个函数
compute\u bill
,该函数将一个参数
food
作为输入。 在函数中,创建一个初始值为零的变量
total
。 对于
食品
列表中的每个项目,将该项目的价格添加到
总计
。 最后,返回总数

这是我的代码:

def compute_bill(food):
    total=0
    for x in food:
        total+=x
    return total 
这就是他们给我的错误:

compute_bill(['apple'])导致类型错误:不支持的操作数 输入+=:“int”和“str”


我不知道我做错了什么。

你没有正确阅读作业:

对于食物清单中的每一项,将该项的价格加到总数中

您添加的是商品本身,而不是商品的价格

你大概有办法找到每种商品的价格,比如字典。您不能添加
'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
,这是一个与作业文本匹配的更具描述性的变量名。

您没有正确阅读作业:

对于食物清单中的每一项,将该项的价格加到总数中

您添加的是商品本身,而不是商品的价格

你大概有办法找到每种商品的价格,比如字典。您不能添加
'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
,这是一个更具描述性的变量名称,与您的作业文本相匹配。

您应该汇总每种食品的价格,而不是食品本身的价格。假设您有一本价格字典,您的代码应该是这样的:

def compute_bill(food):
  total = 0
  for x in food:
    total += prices[x]
return total

你应该总结每种食物的价格,而不是食物本身。假设您有一本价格字典,您的代码应该是这样的:

def compute_bill(food):
  total = 0
  for x in food:
    total += prices[x]
return total

错误告诉您:不能将整数和字符串相加。这是因为你将你的总数(一个整数)和食物本身(而不是价格)相加。你可以用:
你的字典[food]
来解决这个问题,而不仅仅是
food
。希望这有帮助

错误告诉您:不能将整数和字符串相加。这是因为你将你的总数(一个整数)和食物本身(而不是价格)相加。你可以用:
你的字典[food]
来解决这个问题,而不仅仅是
food
。希望这有帮助

这是正确的代码,我花了很长时间来修复它,但请确保它看起来与此类似:

def compute_bill(food):
    total = 0
    for each in food:
        total += prices[each]
    return total

这是正确的代码,我花了很长时间来修复它,但请确保它看起来与此类似:

def compute_bill(food):
    total = 0
    for each in food:
        total += prices[each]
    return total

这是假设您有一个价格字典。这是假设您有一个价格字典。欢迎使用Stack Overflow。不鼓励只使用代码的答案。请尝试提供一些关于代码如何解决OPs问题的解释。此外,您可能还想了解。我已编辑了您的答案以修复代码块。欢迎使用堆栈溢出。不鼓励只使用代码的答案。请尝试提供一些关于代码如何解决OPs问题的解释。此外,您可能还想了解。我已编辑了您的答案以修复代码块。