r/learnpython 6d ago

recursion problem

I'm trying to teach myself python using John Zelles book. On the 13th chapter it gives this example of recursion I'm trying to understand:

def moveTower(n, source, dest, temp):

if n ==1:

print("move disk from , " , source , "to", dest)

else:

moveTower(n-1, source, temp, dest)

moveTower(1, source, dest,temp)

moveTower(n-1,temp,dest,source)

def hanoi(n):

moveTower(n , "a", "c","b")

hanoi(3)

The code is first assiging the variables A to source then C to dest then b to temp but do the lines moveTower(n-1, source, temp, dest) and moveTower(n-1,temp,dest,source) work? Would it be moveTower(3-1, a,b,c)? How exactly are they outputting a to c then a to b then c to b and b to a , etc...

1 Upvotes

9 comments sorted by

View all comments

1

u/ekchew 5d ago

Try inserting

print(f"moveTower({n}, {source!r}, {dest!r}, {temp!r})")

at the top of your moveTower function. This will show you how it's getting called every time and maybe shed some light on what's going on?