2017-11-09 10 views
0

前に参照され、私はPythonの機能を持っている:私は、端末UnboundLocalError:ローカル変数 'F' 割り当て

enter image description here

でそれを実行すると

FactorialFunction.py

def factorial(n): 
    if n == 0: 
     return 1 
     f = n * factorial(n-1) 
    print(f) 
    return(f) 
    factorial(4) 

は、何も表示しません

でも、Pythonシェルで実行すると"UnboundLocalEr ROR: 'F' ローカル変数を使用すると、Pythonコードのインデントに従わなければならない「

enter image description here

答えて

1

代入する前に参照しました。

if n == 0: 
    return 1 
    f = n * factorial(n-1) 

f = n * factorial(n-1)この文はPythonコードでは決して到達しませんでした。この声明に達する前にreturnになるからです。

def factorial(n): 
    if n == 0: 
     return 1 
    f = n * factorial(n-1) 
    print(f) 
    return(f) 
factorial(4) 
+0

ありがとうございます –

関連する問題