在 "computing bill" CodeAcademy Python 练习中获得"Oops, try again!"



编写一个函数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。

现在,继续并忽略您计费的商品是否有库存

删除

  • if stock[f] > 0:

  • stock[f] -= 1

目前还不完全清楚你在问什么,但如果你想弄清楚为什么你的功能不能满足任务的要求,说明说:

"现在,继续忽略你要计费的商品是否有库存。"

您的代码会进行检查,以确保物品有库存,这与说明相反,因此返回0而不是2。

最新更新