收到“哎呀,再试一次!”在“计算法案”codecademy Python练习

时间:2013-08-19 19:29:49

标签: python

  

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

2 个答案:

答案 0 :(得分:6)

  

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

删除

  • if stock[f] > 0:

  • stock[f] -= 1

答案 1 :(得分:2)

你所要求的并不完全清楚,但是如果你想弄清楚为什么你的功能不符合作业的要求,说明说:

“现在,请继续并忽略您要结算的商品是否有货。”

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