2016-01-23 80 views
0

執行功能我有一個while循環中如下代碼:無法在while循環

while True: 
    user_input = input("y or n") 
    if user_input == "y": 
     yes() 
     break 
    if user_input == "n": 
     no() 
     break 

def yes(): 
    print("yes") 

def no(): 
    print("no") 

當我輸入「Y」,出現此消息阻止功能被執行。

NameError: name 'yes' is not defined 

這是爲什麼?我怎麼能解決呢?

+1

定義是()while循環 –

+0

道歉過,但提供什麼理由來降低我的文章的得分爲-1? @TimCastelijns你碰巧知道/ –

+0

大概是因爲這是基本的和以前已經問 –

回答

1

Python從頂部執行代碼底部,創建函數對象,因爲它遇到def語句。當它開始執行你的while循環,它沒有達到你的def yes():行了,這樣的功能還不存在。

移動功能的頂端,你while循環之前。

或者,將循環到另一個函數,並調用新的函數yesno功能已經確定。

2

您必須在while之前定義函數yes()no()

像這樣:

def yes(): 
    print("yes") 

def no(): 
    print("no") 

while True: 
    user_input = input("y or n") 
    if user_input == "y": 
     yes() 
     break 
    if user_input == "n": 
     no() 
     break 

這將正常工作。