可能重复:
Python - How to check if input is a number (given that input always returns strings)
我需要检查输入并发送错误消息,如果它不是数字。我怎么做这个最好的方法?似乎没有找到任何关于它的任何其他帖子,你我很害羞,之前一定有人问过这个问题。
答案 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()