防止按字母顺序输入

时间:2011-08-11 18:45:52

标签: python-3.x

  

可能重复:
  Python - How to check if input is a number (given that input always returns strings)

我需要检查输入并发送错误消息,如果它不是数字。我怎么做这个最好的方法?似乎没有找到任何关于它的任何其他帖子,你我很害羞,之前一定有人问过这个问题。

4 个答案:

答案 0 :(得分: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: ")

答案 1 :(得分: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
>>> 

答案 2 :(得分:0)

while True:
    user_input = raw_input("> Please enter a number:")
    try:
        n = float(user_input)
    except ValueError:
        continue
    else:
        break

答案 3 :(得分:-1)

isdigit函数可用于测试字符串是否为全数字且不为空:

val = '255'
val.isdigit()