Understanding recursion in Python
===

I'm really trying to wrap my brain around how recursion works and understand recursive algorithms. For example, the code below returns 120 when I enter 5, excuse my ignorance, and I'm just not seeing why?

     
    def fact(n):
    if n == 0:
        return 1
    else:
        return n * fact(n-1)


    answer = int (raw_input('Enter some number: '))



    print fact(answer)