2016-05-11 14 views
1
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) 

何らかの理由で私の関数がNoneを返しても、わかりません。Python再帰関数

+3

あなたは他に呼び出すバニーの結果を返す必要があります。 – Baart

+1

インデントを修正してください –

答えて

4

あなたのelseブランチは何も返しません。つまり、Pythonでは、ただNoneを返します。 bunniesへの呼び出しにreturnを平手打ちし、[OK]を次のようになります。

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

ありがとうございます。 –

+0

@ArmidoMaamägiは答えを正しいとマークします。 –

+0

私は7分待たなければなりません。 –