2015-06-19 81 views
-2
a=str(input("Enter num To Start FunctionOne")) 
if(a == '1'): 
    one() 



elif (a == '2'): 
    tow() 




def one(): 
    print('Good') 

def tow(): 
    print('Very Good') 

錯誤NameError:名字 '一' 是沒有定義的Python 3.4的錯誤

Enter numper To Start FunctionOne1 
Traceback (most recent call last): 
    File "C:/Users/Hacker/Desktop/complex program.py", line 3, in <module> 
    one() 
NameError: name 'one' is not defined 
+1

我會建議固定錯別字即使他們是一致的,比如'tow'而不是'two',因爲最終你會嘗試訪問它與'兩個',這將是錯誤的。如果有人需要處理你的代碼,這尤其是真的。 – TigerhawkT3

回答

2

你需要調用之前定義功能:

def one(): 
    print('Good') 

def tow(): 
    print('Very Good') 

a=str(input("Enter num To Start FunctionOne")) 
if(a == '1'): 
    one() 



elif (a == '2'): 
    tow() 

如果調用功能,但該功能在它下面定義,那麼它贏得」因爲Python不知道該函數調用應該做什麼。

1

Define your functions before using them

Python是一種解釋語言,所以由行解釋器移動線,你想打電話函數 - one()在它被定義之前,在程序的後面部分。主叫方之前,您應該移動的功能定義 -

def one(): 
    print('Good') 

def tow(): 
    print('Very Good') 

a=str(input("Enter num To Start FunctionOne")) 
if(a == '1'): 
    one() 

elif (a == '2'): 
    tow() 
0

Python逐行讀取腳本,所以當它到達one()函數調用時,它會拋出錯誤,因爲尚未定義。

1

請勿在函數定義以外的腳本中放置任何指令。然後在底部的一個子句中調用main函數。這讓口譯員看到試圖調用之前定義的一切:

def main(): 
    a = input("Enter num To Start FunctionOne") 
    if a == '1': 
     one() 
    elif a == '2': 
     two() 

def one(): 
    print('Good') 

def two(): 
    print('Very Good') 

if __name__ == '__main__': 
    main() 
相關問題