Armido Maamägi
Armido Maamägi

Reputation: 95

Python recursive function

def bunnies(n,months,quantity):
    print(quantity)
    if n == months:
        return quantity
    else:
        quantity=quantity+quantity
        bunnies(n+1,months,quantity)



months=int(input("How many months ?"))
quantity=1
n=0
bunnies_total=bunnies(n,months,quantity)
print(bunnies_total)

For some reason my function returns None, I can't figure it out.

Upvotes: 1

Views: 67

Answers (1)

Mureinik
Mureinik

Reputation: 311063

Your else branch doesn't return anything, which means in python it will just return None. Slap a return on the call to bunnies, and you should be OK:

def bunnies(n,months,quantity):
    if n == months:
        return quantity
    else:
        quantity=quantity+quantity
        return bunnies(n+1,months,quantity) # Here

Upvotes: 4

Related Questions