2011-08-11 133 views

回答

4
if not value.isdigit(): 
    raise ValueError("Input must be numeric") 

@ TokenMacGuy的解決方案是更好的,如果你從raw_input()讓你的輸入,但除此之外,這個工程。

如果你想循環,直到你得到正確的輸入,而不是產生一個錯誤,試試這個:

value = input("Input: ") 
while not value.isdigit(): 
    input("Input must be numeric, please reenter: ") 
+0

我'使用輸入(),但事情是我需要的信息是「輸入必須是數字,請重新輸入:」 – Sergei

+0

@Sergei看到我的更新 –

+0

謝謝,這正是我一直在尋找。 – Sergei

2

編輯:

>>> while True: 
...  try: 
...   result = int(raw_input("Enter a Number: ")) 
...   break 
...  except ValueError: 
...   print "Input must be a number" 
... 
Enter a Number: abc 
Input must be a number 
Enter a Number: def 
Input must be a number 
Enter a Number: 123 
>>> result 
123 
>>> 
-1

可以使用的ISDIGIT函數測試字符串是所有的數字,而不是空:

val = '255' 
val.isdigit() 
0
while True: 
    user_input = raw_input("> Please enter a number:") 
    try: 
     n = float(user_input) 
    except ValueError: 
     continue 
    else: 
     break