创建一个函数,从列表中返回最少数量的参数

时间:2015-08-03 21:15:01

标签: python function loops

我是Python编程的新手,我试图创建一个我指定数字(参数)的函数,然后,从我创建的列表中,我得到了那个数字(参数)代表尽可能少。

到目前为止,我已经编写了这段代码,但我似乎遇到了错误(我将解释我在代码注释中所做的逻辑):

def count_money(monto):
    bill = 1000, 500, 200, 100, 50, 25, 20, 10, 5, 1 
    for x in bill:
        total = (monto/x)
        if total >= 1: # if this division is bigger than one, it means there's one bill which can be taken.
            print(x) % Here I take the bill
            monto = (monto%x) # we update the argument to be the residual of the division so that the loop continues with this new argument. However, when the division equals exactly one, which would be the last number, then it will also print this number.

如果我打印,例如count_money(150),那么我得到一张100和50的账单。但如果我玩其他数字那就错了。

请不要告诉我答案,只是指出我正确处理我的代码错误的方向。

感谢。

1 个答案:

答案 0 :(得分:0)

正如评论中指出的那样,问题在于,在当前版本的代码中,每个账单只能使用一次,因为您在列表上进行迭代,一次检查一个账单并继续。

此修复应该可以解决问题:

A.className

我保留了原始变量名称,但为了便于阅读,应更改它们,因为它们的使用现在已经改变了。