2015-06-22 2 views
0

Я хочу вызвать функцию несколько раз и использовать возвращаемый аргумент каждый раз, когда он вызывается. Например:Вызов функции и передача аргументов несколько раз

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

первый вызов: myfunction(1,2,3) второй вызов будет проходить возвращаемые переменные: myfunction(2,3,4) и цикл его до определенных времен. Как я могу сделать такой цикл? Спасибо!

+0

'для i в диапазоне (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 до i является 0, который нарушит 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? И что с несогласованными аргументами 'y' и' z'? – user2357112

Смежные вопросы