加,除非值大于

时间:2018-09-01 23:19:50

标签: python

我需要添加到变量start中,除非该值大于变量total。我收到带有项目的json响应,但是每次请求只能得到250。但我可以在请求中的列表中选择我要开始的位置。因此,如果它们有560个项目,我需要一次请求250个项目,直到达到560个。但是,如果start > total将返回错误。因此,我有一个while循环,每次通过时都会加250,除非start > total。但是,明显的缺陷是,即使value为559,它仍然会加250。这是一个错误。我该怎么办?

start = 0
total = 560
def func1():
    global start
    global total
    while start < total:
        start+=250
        print(start)
        #somefunc()
    else:
        start = 0
        #somefunc()

func1()

我的输出是

0
250
750

我需要输出为

0
250
560 

2 个答案:

答案 0 :(得分:1)

您可以使用三元分配:

>>> s=0
>>> total=12
>>> inc=3
>>> for _ in range(10):    
...    s+=inc if s+inc<total else 0
... 
>>> s
9

注意:最好重构代码,以避免global

答案 1 :(得分:1)

我相信这会起作用:

start = 0
total = 560
def func1():
    global start
    global total
    while start < total:
        if start > (total-250):
            start += total-start
            print(start)
        else:
            print(start)
            start+=250
            #somefunc()
    else:
        start = 0
        #somefunc()

func1()

这给了我输出:

0
250
560