[Tutor] recursive function example
spir
denis.spir at gmail.com
Wed Dec 11 22:11:27 CET 2013
This is a pretty good clarification! (debug prints well designed and well placed)
Congrats, Mark!
denis
On 12/11/2013 06:37 PM, Mark Lawrence wrote:
> 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?
>
More information about the Tutor
mailing list