![](/img/trans.png)
[英]UnboundLocalError: local variable 'text_in_use' referenced before assignment
[英]UnboundLocalError: local variable 'text' referenced before assignment
嗨,我收到此錯誤“UnboundLocalError:分配前引用的局部變量'文本'”。 你如何解決這個問題?
這是我的代碼:
even = None
def is_even(num):
if num % 2 == 0:
even = True
return even
elif num % 2 != 0:
even = False
return even
def lastmes():
if even == True:
text = "The last value of even is True"
elif even == False:
text = "The last value of even is False"
return text
print(lastmes())
print(is_even(51))
這是我的錯誤信息:
Traceback (most recent call last):
File "main.py", line 17, in <module>
print(lastmes())
File "main.py", line 15, in lastmes
return text
UnboundLocalError: local variable 'text' referenced before assignment
你應該做三件事。
首先,在is_even
function 全局變量中設置even
變量。 您只是在創建另一個局部變量並設置它的值,這不會改變您在even
之外創建的值。
def is_even(num):
global even #Here
if num % 2 == 0:
even = True
return even
elif num % 2 != 0: #You should change this to just an else but this works too
even = False
return even
其次,將您的lastmes
function 中的elif
更改為else
。 如果您打算使用elif
並想考慮even
是None
的可能性,那么您應該添加另一個else
來處理None
的可能性。
def lastmes():
if even == True:
text = "The last value of even is True"
else:
text = "The last value of even is False"
return text
第三,在is_even
之前調用lastmes
以便計算值,然后再檢查它們並顯示消息。
print(is_even(50))
print(lastmes())
如果even
既不是True
也不是False
,則永遠不會定義text
。 even
在程序開始時設置為None
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.