如何循环此功能一定次数?

时间:2017-02-18 17:26:11

标签: python

import sys
g = int(input())
def TwoStackSum():
    sumList = []
    for a0 in range(g):
            n,m,x = input().strip().split(' ')
            n,m,x = [int(n),int(m),int(x)]
            a = list(map(int, input().strip().split(' ')))
            b = list(map(int, input().strip().split(' ')))
            while sum(sumList) < x:
                try:
                    sumList.append(a.pop(a0))
                    sumList.append(b.pop(a0))
                except IndexError:
                    break
    while sum(sumList) > x:
        sumList.pop(len(sumList)-1)
    print(len(sumList))
    sumList.clear()
    TwoStackSum()

TwoStackSum()

我希望运行TwoStackSum函数的次数与for循环中的范围相同,但它运行没有任何限制。

1 个答案:

答案 0 :(得分:1)

要调用方法g次,请执行以下操作:

for _ in range(g):
    TwoStackSum()

但是从函数内部删除TwoStackSum()调用(在sumList.clear()之后),否则它将永远循环。目前,当你调用你的方法时,它会自动调用它,无限期地再次调用它。

如果您按照目前的状态运行,则会获得RuntimeError: 'maximum recursion depth exceeded'

但是请确保这是你想要的,因为函数内的for循环:

for a0 in range(g):
对于g函数的每次调用,

也会被调用TwoStackSum()次。