我正在嘗試根據輸入陳述句和我定義的函式構建 if/elif/else 陳述句。當我運行代碼時,輸??入陳述句和函式定義并呼叫運行良好,但隨后我進入了 if/elif/else 陳述句并得到了一個 NameError,告訴我我在 if/elif/ 中呼叫了一個變數else 陳述句未定義(即使我認為我在函式中定義了它)。
對于背景關系,我是 Python 新手,我正在 Atom 中構建代碼并在命令提示符中運行它。
我的輸入、函式定義和 if 陳述句代碼如下所示:
h, m, s, t = input('Rate each of the following Emotions and hit enter:\nHappiness (1-7):'), input('Meaningfulness (1-7):'), input('Stressfulness (1-7):'), input('Tiredness (1-7):')
h_int=int(h)
m_int=int(m)
s_int=int(s)
t_int=int(t)
def na():
add_h_m = h_int m_int
div_h_m = add_h_m/2
add_s_t = s_int t_int
div_s_t = add_s_t/2
net_affect = div_h_m - div_s_t
print(net_affect)
na()
if net_affect >= 3:
print("Doing Well")
elif net_affect <3 and net_affect >0:
print("Doing Okay")
else:
print("Not Good")
這是命令提示符輸出:
C:\Users\mrkev\Desktop\PAI 724>python ex2.py
Rate each of the following Emotions and hit enter:
Happiness (1-7):6
Meaningfulness (1-7):7
Stressfulness (1-7):4
Tiredness (1-7):3
3.0
Traceback (most recent call last):
File "C:\Users\mrkev\Desktop\PAI 724\ex2.py", line 16, in <module>
if net_affect >= 3:
NameError: name 'net_affect' is not defined
我哪里錯了?我認為通過在函式中定義 net_affect,然后我可以在我的程式中將其用作變數。
感謝您的幫助!
uj5u.com熱心網友回復:
在您的檔案或教程中查找“變數范圍”。
該net_affect變數是na函式的區域變數。您無法從外部訪問它,并且在函式回傳時將其洗掉。
您也可以:
在函式外定義變數,并表明你在函式中使用它
net_affect = None def na(): ... global net_affect net_affect = div_h_m - div_s_t從函式回傳值并捕獲回傳值
def na(): ... net_affect = div_h_m - div_s_t ... return net_affect # return the value ... net_affect_new = na() # catch the value注意:
net_affect_new可以被呼叫,net_affect但它們不是相同的變數,它們在兩個不同的范圍內。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/325812.html
