這是我做過的循環:UnboundLocalError當我試圖從循環遞歸?
def cont_frac(k):
n=1
tempk=k
x=0
D=2.0
if k<1:
print("Invalid Input")
else:
while tempk>1:
n=n+2
tempk=tempk-1
while(k>=1):
N=n*n
x=N/(D+x)
n=n-2
k=k-1
這是我做過的遞歸
n=1
k=int(input("enter the value of k:"))
p=k
def n_inc(tempk):
while tempk>1:
n=n+2
tempk=tempk-1
return n
def conts_frac(k):
x=0
D=2.0
if k<1:
print("invalid Input")
else:
n_inc(p)
N=n*n
x=N/(D+x)
n=n-2
return conts_frac(k-1)
conts_frac(k)
現在的問題是,爲什麼這個錯誤UnboundLocalError
在遞歸部分產生?
UnboundLocalError: local variable 'n' referenced before assignment
因爲你在全局範圍聲明瞭''n,所以當你在函數內部做了'n = n-2'時,它試圖分配'n = n-2',即試圖賦值'n'作爲局部變量,因爲全局變量並沒有隱式包含在方法定義的範圍內。 –
所以我應該在函數方法(n_inc)中聲明n?刪除此錯誤。對不起,我是一個編程新手,所以我有點困惑。 –
[Python變量範圍錯誤]的可能重複(http://stackoverflow.com/questions/370357/python-variable-scope-error) – GingerPlusPlus