从数字中减去直到不等于零

时间:2018-07-31 15:14:12

标签: python

我有一个数字列表[5,10,15,20],并且我有某种“折扣”值,假设它是20。我想做的就是减去这个折扣值。从每个数字直到折扣等于0(20-5 = 15、15-10 = 5然后15-5 = 10)。我已经尝试过这样的事情:

for i in list: 
    while i[0] > 0: 
        i[0] - discount 
        if discount != 0: 
            continue 
        else: 
            break

但这似乎根本没有效果

2 个答案:

答案 0 :(得分:1)

老实说,我不理解您在代码中所做的事情。尽量不要将list用作变量,因为它是关键字。如果我正确理解您的问题,以下代码将检查discount = 0。如果是,则中断。如果折扣的值大于0,则从折扣值中减去下一个清单项目。我已经做了折扣<= 0,以防止在折扣值变为负数的情况下产生无限值。您的代码中还有另一个问题。您执行i [0],其中i是列表中的整数,没有任何意义。

for i in my_list:
    if discount<=0:
        break
    else:
       discount -= i

答案 1 :(得分:0)

这可能是解决问题的方法

for i in my_list:
    while discount> 0:
        x = max(0,i-discount)
        discount = (abs(min(0,i-discount)))
        new_list.append(x)
        break
    else:
        new_list.append(i)