在python3 4 0中總提示UnboundLocalEr

2021-03-19 22:53:53 字數 3162 閱讀 7314

1樓:鬱筱羽

報錯原因是:函式的中對a的賦值出現在函式dc(n)中,但是你寫的函式dc1(n)卻嘗試去呼叫a。相當於a這個引數被越界呼叫了。

改正:將a設定為全域性變數。

改正後的**:

a=1def dc(n):

s=0def dc1(n):

if a>=n:

print(s)

else:

return dc2(n)

def dc2(n):

a=a+1

return dc1(n)

return dc1(n)

在檔案中更改為:

2樓:jason粉絲團

你的a變數並沒有賦值到函式dc1,dc2,因此在函式中會提示a變數之前沒有定義,我根據的你修改了一下。

def dc(n):

a=1s=0

def dc1(n,a):

if a>=n:

print(s)

else:

return dc2(n,a)

def dc2(n,a):

a=a+1

return dc1(n,a)

return dc1(n,a)

python的這段**為什麼提示unboundlocalerror: local variable 'a' referenced before assignment

3樓:雙子座

if __name__ == '__main__':

這個是確保執行的本檔案的主函式。

python在執行時,會預設給__name__一個值,就是__main__。

舉個栗子:檔案p1.py和p2.py,其中在p1中呼叫了p2.

那麼p2中的if __name__ == '__main__':就不成立,因為在p2環境中,__name__為p2。

performance是一個裝飾器,用於統計程式的執行時間。

裝飾器(decorator)是一種高階python語法。裝飾器可以對一個函式、方法或者類進行加工。裝飾器就是一個函式,與普通函式不同的是裝飾器的輸入引數是一個函式。

@performance

def factorial(n):

等價於performance(factorial)(n)

4樓:幸巴達

a = a()

a是函式,這裡又當成變數了,當然不行。

python的這段**為什麼提示unboundlocalerror: local variable 'i' referenced before assignment?

5樓:匿名使用者

a = a()

a是函式,這裡又當成變數了,當然不行。

python 出現這個錯誤是什麼原因

6樓:小鏡子

蒐集了一些python最重要的內建異常類名,並做了簡單的介紹:

attributeerror:屬性錯誤,特性引用和賦值失敗時會引發屬性錯誤

nameerror:試圖訪問的變數名不存在

syntaxerror:語法錯誤,**形式錯誤

exception:所有異常的基類,因為所有python異常類都是基類exception的其中一員,異常都是從基類exception繼承的,並且都在exceptions模組中定義。

ioerror:一般常見於開啟不存在檔案時會引發ioerror錯誤,也可以解理為輸出輸入錯誤

keyerror:使用了對映中不存在的關鍵字(鍵)時引發的關鍵字錯誤

indexerror:索引錯誤,使用的索引不存在,常索引超出序列範圍,什麼是索引

typeerror:型別錯誤,內建操作或是函式應於在了錯誤型別的物件時會引發型別錯誤

zerodivisonerror:除數為0,在用除法操作時,第二個引數為0時引發了該錯誤

valueerror:值錯誤,傳給物件的引數型別不正確,像是給int()函式傳入了字串資料型別的引數

python是面嚮物件語言,所以程式丟擲的異常也是類

python 這個報錯怎麼解決 30

python 使用try except解一元二次方程問題

7樓:可靠的我心我在

報錯unboundlocalerror: local variable 'a' referenced before assignment

這個報錯是因為你 a,b,c=raw_input("please enter the coefficients(a,b,c):")

執行到這句就報錯了 ,可能你輸入格式的有問題(比如 1,2,3或者 1 2 3) ,不信你用

import traceback

try:

a,b,c=input("please enter the coefficients(a,b,c):")

a,b,c=int(a,b,c)

discroot=math.sqrt(b*b-4*a*c)

root1=(-b+discroot)/(2*a)

root2=(-b-discroot)/(2*a)

print ("\nthe solutions are",root1,root2)

except exception,e:

traceback.print_exc()

print a,b,c

#如果a,b,c正常的賦值了 就算異常了在except 裡面也會正常的print 出來

然後 a,b,c=int(a,b,c)這句我不知道是不是你獨創的寫法 還是python3 新增的

py2 是沒有這樣子的寫法

請問可以在python的類的方法裡面引用類外面定義的function嗎?應該怎樣引用?

python中的替換問題

8樓:匿名使用者

result += long_str[n] 表達為 result=result+long_str[n]。那麼result必須之前定義過,否則直譯器會因為找不到result這個變數的值,而報unboundlocalerror的錯。只要在for前面result=0就可以了

python中怎麼在 py檔案中呼叫另 py的方法

假設兩copy個py檔案放在同一個資料夾裡a.py 的內容如下 def method print i m a.py b.py中想呼叫它有兩種方法 一 推薦 import a a.method 二 from a import methodmethod 從序列中獲取一個隨機元素。引數sequence表示...

怎樣在Excel中把每隔3行求和的資料提取

使用偏移函式 offset sheet1 b 5,row 1 1 3 3,column a a 右拉下拉填充。c列中的合計的和 sumproduct b b 合計 c c d列中的合計的和 sumproduct b b 合計 d d excel表同一列中每隔三行的單元格數值相加如何設定 1 首先打b...

魔獸世界國服3 1 3神聖牧師在團隊中如何提高自己的有效治療量,有什麼手法

我就是個神聖ms!團裡 第1!這個就要看打什麼怪了!其實ms 手法很重要!這就要看打什麼怪了!25人團隊小怪就癒合丟t,好了就丟t,恢復很重要!保持t的恢復!a怪的時候給布甲職業丟恢復,之環丟血少了的小隊!打小怪的時候基本不用大的群療!丟恢復就可以解決!反正a怪的時候恢復丟a怪職業!特別是ss,仇恨...