Skip to content Skip to sidebar Skip to footer

I Cannot Print The Final Value Of A Variable

I'm new in Python and I'm trying the write to final value of recAdd on my fibonacci recursive version. Here is my code: recAdd=0 def fibonacciRecursive(n): global recAdd i

Solution 1:

You need to dedent the print and place it after you call the function

def fibonacciRecursive(n):
    global recAdd
    if n == 1 or n == 0:        
        return n  # <-- should this be return1?
    else:
        recAdd = recAdd + 1return fibonacciRecursive(n - 1) + fibonacciRecursive(n - 2)

recAdd = 0
fibonacciRecursive(5)
print(recAdd)

You could encapsulate this in a wrapper

deffib_aux(n):
    global recAdd
    recAdd = 0
    fibonacciRecursive(5)
    print(recAdd)

Then just call

fib_aux(5)

Burying the logic in the function is awkward. Here is one way

deffibonacciRecursive(n, print_recAdd=True):
    global recAdd
    if n == 1or n == 0:        
        retval = n  # <-- should this be 1?else:
        recAdd = recAdd + 1
        retval = fibonacciRecursive(n - 1, False) + fibonacciRecursive(n - 2, False)
    if print_recAdd:
        print recAdd
    return retval

Post a Comment for "I Cannot Print The Final Value Of A Variable"