2015-10-14 179 views
1

我正在定義一個函數,我可以調用該函數來存儲用戶的輸入作爲變量, 確保它是一個數字,然後在代碼中稍後將該數字轉換爲公式的整數。Python <function functionName at 0x00000000>

這樣的想法是,當程序到達它會提示用戶輸入的getAnswer,這將啓動功能,檢查用戶給出了答案,並將其轉換爲整數。與同樣的事情曾

def getAnswer(a): 
    while True: 
     if a.isdecimal(): 
      a = int() 
      break 
     print('Numbers only please...') 

days = input(getAnswer) 
worked = input(getAnswer) 

這是它結束了看起來像< function functionName at 0x013A1300>

+1

我一點也不清楚你在這裏想問什麼;你可以編輯澄清?此外,看起來'getAnswer'實際上不會返回任何東西。 – jonrsharpe

+0

我試圖清理最好的語言,我可以爲每個人,我仍然非常新的Python。 – Pepperdyne

+0

*「跟隨我的光標在輸入部件」* ?! – jonrsharpe

回答

2

通過傳遞函數而不是字符串來提示用戶,您正在調用input。也許你的意思是:

days = getAnswer() 

與定義爲使用input獲得來自用戶的響應getAnswer(),驗證它,然後返回。例如,

def getAnswer(): 
    while True: 
     a = input() 
     try: 
      return int(a) 
     except ValueError: 
      print('Numbers only please...') 

在我看來,這是不是讓輸入功能getAnswer()更清晰,try...except條款是一種常見的,容易理解的Python的成語。

+0

這解決了這個問題,並且我更好地理解了函數,謝謝! – Pepperdyne

0

getAnswer本身是一個函數。你是不是調用它,例如,像這樣:

getAnswer(1) 

我懷疑你試圖做的是

days = getAnswer(input()) 

注意評價的順序是從內到外。換句話說,input()將首先被評估,然後getAnswer(...)

+0

感謝您的澄清!我得到了我出錯的地方。 – Pepperdyne

相關問題