我需要添加到变量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
答案 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