0

编写一个函数 compute_bill,将参数 food 作为输入,并通过遍历食物列表并对列表中每个项目的成本求和来计算您的账单。

现在,请继续忽略您要结算的商品是否有库存。

请注意,您的函数应该适用于任何食物列表。

给定的代码是

groceries = ["banana", "orange", "apple"]

stock = { "banana": 6,
    "apple": 0,
    "orange": 32,
    "pear": 15
}

prices = { "banana": 4,
    "apple": 2,
    "orange": 1.5,
    "pear": 3
}

我写了这个:

def compute_bill(food):
    total = 0;
    for f in food:
        if stock[f] > 0:
            total+=prices[f]
            stock[f] -=1

    return total
compute_bill(groceries)

错误信息是

糟糕,再试一次!当 ['apple'] 用作输入时,您的代码似乎不起作用——它返回 0 而不是 2。

4

2 回答 2

6

现在,请继续忽略您要结算的商品是否有库存。

消除

  • if stock[f] > 0:

  • stock[f] -= 1

于 2013-08-19T19:32:24.470 回答
2

尚不完全清楚您要问什么,但如果您想弄清楚为什么您的功能不符合作业要求,说明说:

“现在,请继续忽略您要开单的商品是否有库存。”

与说明相反,您的代码检查以确保该项目有货,因此返回 0 而不是 2。

于 2013-08-19T19:36:06.017 回答