1樓:匿名使用者
在f2()裡面加一句:nonlocal a
就可以,強制的把a宣告成a非本地的區域性變數
2樓:匿名使用者
def f1():
a=12
def f2(a=a):
a+=1
print a
return f2
print f1()()
>>> def f1():
... a=12
... def f2(a=a):
... a+=1
... print a
... return f2
...>>> f1()()13
python **提示錯誤。local variable 'sql_query' referenced before assignment
3樓:可靠的我心我在
sql_query
這個沒有定義
你的**導致的原因是
if result:
_keys = ", ".join(escape(k) for k in result)
_values = ", ".join(escapestr(result[k]) for k in result)
sql_query = "replace into %s (%s) values (%s)" % (tablename, _keys, _values)
else:
print "無記錄"
這裡執行到else 裡面去了,而else 裡面沒有定義 sql_query 這個
所以報錯了
python 使用try except解一元二次方程問題
4樓:可靠的我心我在
報錯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 出現這個錯誤是什麼原因
5樓:小鏡子
蒐集了一些python最重要的內建異常類名,並做了簡單的介紹:
attributeerror:屬性錯誤,特性引用和賦值失敗時會引發屬性錯誤
nameerror:試圖訪問的變數名不存在
syntaxerror:語法錯誤,**形式錯誤
exception:所有異常的基類,因為所有python異常類都是基類exception的其中一員,異常都是從基類exception繼承的,並且都在exceptions模組中定義。
ioerror:一般常見於開啟不存在檔案時會引發ioerror錯誤,也可以解理為輸出輸入錯誤
keyerror:使用了對映中不存在的關鍵字(鍵)時引發的關鍵字錯誤
indexerror:索引錯誤,使用的索引不存在,常索引超出序列範圍,什麼是索引
typeerror:型別錯誤,內建操作或是函式應於在了錯誤型別的物件時會引發型別錯誤
zerodivisonerror:除數為0,在用除法操作時,第二個引數為0時引發了該錯誤
valueerror:值錯誤,傳給物件的引數型別不正確,像是給int()函式傳入了字串資料型別的引數
python是物件導向語言,所以程式丟擲的異常也是類
加急大神們 python問題
python 2.7 變數作用域的疑問
6樓:匿名使用者
在函式中定義和修改全域性變數,需要使用global關鍵字。但訪問全域性變數(不修改它的值),可以省略global關鍵字。python這樣設計的意義在於,防止python程式設計師不小心修改了全域性變數。
使用global關鍵字後,程式設計師很清楚自己正在做什麼。
在例三中,b()函式並沒有修改全域性變數u。u是乙個物件的引用,有唯一的物件id。在修改了變數的引用,導致變數id改變是,才算是「修改了物件」。例如:
u = {}
def foo():
global u
u = 1
return u
print foo()
這是全域性變數u被修改,因為它由乙個字典變成了乙個int物件,它的值發生了變化。
望採納,謝謝支援!
7樓:匿名使用者
首先:關鍵字global宣告乙個變數屬於全域性命名空間,一般在需要修改全域性變數時使用,比如:
a=1def f():
global a
a+=1
問題1:例子2在函式b內部操作全域性變數,需要新增global語句,宣告u是全域性變數
問題2:可能是閉包,不太確定
請問可以在python的類的方法裡面引用類外面定義的function嗎?應該怎樣引用?
求高人指點這個錯誤是什麼原因
Python出現錯誤 builtins TypeError objecttakes no parameters
init 函式 寫錯成 int 了 class person def init self,name,age self.name name if age 0 raise negativeageerrorelse self.age age print self.name,self.agedef make...
python提示錯誤invalid syntax怎麼辦
python提示錯誤invalid syntax時因為 python 2.x公升級到python 3.x,print函式的語法變化了,所以用python 2.x的print函式的 放在python 3.x中運 專行,結果屬就出現了print函式的 syntaxerror invalid syntax...
python提示我語法錯誤,python語法錯誤
最後少個括號吧 上面一行也少個 因為heads那裡就少個括號.python語法錯誤 python提示我語法錯誤 5 while迴圈裡面的第一行中,最後缺少個括號 你把while迴圈裡面的逗號去掉試試吧 你又沒有print,要逗號幹嗎啊,它是迴圈的,沒必要加逗號 你的程式是完整的麼?從13行開始括號都...