2015-06-22 69 views
0

我想多次调用该函数,并在每次调用函数时使用它的返回参数。例如:多次调用函数和传递参数

def myfunction(first, second, third): 
     return (first+1,second+1,third+1) 

第一个呼叫:myfunction(1,2,3) 第二个呼叫将是通过返回变量:myfunction(2,3,4)和循环,直到规定的时间。我该如何做这样的循环?谢谢!

+0

'我在范围内(n): \t print myfunction(i,i + 1,i + 2)' – Ajay

+0

@Ajay它在给出的例子中效果很好。但是,当传递字符串时它不会。感谢评论btw :) – KevinOelen

回答

2
a,b,c = 1,2,3 
while i<n: 
    a,b,c = myfunction(a,b,c) 
    i +=1 
+0

注意'v =(1,2,3)'和'v = myfunction(* v)'。 –

1
def myF(x,y,z,i): 
    print x, i 
    while i: 
     x += 1 
     i -= 1 
     return myF(x,i) 

这将保持通话myF直到i0这将打破while循环,例如:

>>> myF(1,10) 
1 10 
2 9 
3 8 
4 7 
5 6 
6 5 
7 4 
8 3 
9 2 
10 1 
11 0 

对于三个参数,你可以做如下:

>>> def myF(x,y,z,i): 
     print x,y,z,i 
     while i: 
      i -= 1 
      x,y,z = map(lambda s:s+1,(x,y,z)) 
      return myF(x,y,z,i) 


>>> 
>>> 
>>> myF(1,1,1,10) 
1 1 1 10 
2 2 2 9 
3 3 3 8 
4 4 4 7 
5 5 5 6 
6 6 6 5 
7 7 7 4 
8 8 8 3 
9 9 9 2 
10 10 10 1 
11 11 11 0 
+0

循环中的'return'在第一次迭代时打破循环。 – user2357112

+0

@ user2357112,我传递'i'变量作为参数来保持循环... –

+0

那么为什么要使用'while i'循环呢?不一致的'y'和'z'参数有什么关系? – user2357112