2015-02-11 46 views
0

你好,我是相當新的python,並且正在努力學習成爲一個高效的編碼器。附加是驗證用戶輸入是一個數字> = 0的一些代碼。我希望這裏的專家可以告訴我是否有更高效的方法來做到這一點。Python驗證和requireng從用戶輸入數字

感謝

budget = input("Please enter your budget for the month: ") 
while type(budget) == str or budget < 0: 
    try: 
     budget = float(budget) 
     while budget < 0: 
      budget = input("Error, Please enter a positive number for the budget: ") 
      try: 
       budget = float(budget) 
      except ValueError: 
       break 
    except ValueError: 
     budget = input("Error, text is not valid - Please enter a number for the budget: ") 

回答

0

這是我想出了。它使用try/except語句的一個鮮爲人知的功能,即else子句。另外,我還將您的錯誤與您的輸入分開,以使其更簡單。

budget = "" 
while type(budget) == str or budget < 0: 
    budget = input("Please enter your budget for the month: ") 
    try: 
     budget = float(budget) 
    except ValueError: 
     print("Error: text is not valid") 
    else: 
     if budget >= 0: break 
     else: print("Error: number must be positive") 

如果你想獲得真正看中,你可以導入sys,併爲每個錯誤print聲明還包含了該選項file=sys.stderr,這將有效地使輸出紅色。但是,我不確定這是否是一種「安全」技術。

+0

我喜歡那樣,它更容易理解。非常感謝您的參與 – soulspike 2015-02-11 17:07:39