[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