[Tutor] recursive function example
Mark Lawrence
breamoreboy at yahoo.co.uk
Wed Dec 11 18:37:47 CET 2013
On 10/12/2013 14:48, ugajin at talktalk.net wrote:
[snipped]
As you're clearly struggling here's my attempt at showing you what is
happening.
c:\Users\Mark\MyPython>type mytest.py
level = 0
def mult(a, b):
global level
level += 1
print('level now', level, 'a =', a, 'b =', b)
if b == 0:
print('immediate return as b == 0')
return 0
print('call mult again')
rest = mult(a, b - 1)
print('rest =', rest)
value = a + rest
print('value =', value, '(a + rest ==',a, '+', rest,')')
return value
mult(3, 2)
c:\Users\Mark\MyPython>mytest.py
level now 1 a = 3 b = 2
call mult again
level now 2 a = 3 b = 1
call mult again
level now 3 a = 3 b = 0
immediate return as b == 0
rest = 0
value = 3 (a + rest == 3 + 0 )
rest = 3
value = 6 (a + rest == 3 + 3 )
c:\Users\Mark\MyPython>
Does this help clarify things for you?
--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.
Mark Lawrence
More information about the Tutor
mailing list