2016-03-18 66 views
0

當談到python時,我仍然很新,所以對我來說很簡單。每當我測試這個代碼時,它會返回「None」而不是輸入的輸入。任何想法爲什麼會發生?Python Noob:輸入沒有返回

def inputLandValue(): 
    while(1): 
     try: 
      value=int(input('Please enter the value of the property ')) 
      break 
     except: 
      print('Please enter a whole number (10000)') 
      return value 
def main(): 
    while(1): 
     landValue = inputLandValue() 
     print(landValue) 
     doMoreStuff = input('Do you want to continue? y/n ') 
     if(doMoreStuff.lower() != 'y'): 
      break 
main() 
input() 

回答

5

您縮短了return value行太多。它是except:處理程序的一部分,因此只有當您有value時才執行!它應該是while循環:

def inputLandValue(): 
    while(1): 
     try: 
      value=int(input('Please enter the value of the property ')) 
      break 
     except: 
      print('Please enter a whole number (10000)') 
    return value 

或更換breakreturn value

def inputLandValue(): 
    while(1): 
     try: 
      value=int(input('Please enter the value of the property ')) 
      return value 
     except: 
      print('Please enter a whole number (10000)') 

你真的應該只趕上ValueError然而,這不是神奇寶貝,不要試圖catch'm所有:

except ValueError: 
+0

我想給其他+1的寵物小精靈參考! – Loufylouf

0

您可以通過剛剛在main()把「return value」代替break的解決您的問題。