【发布时间】:2011-10-25 06:16:10
【问题描述】:
可能重复:
Python - How to check if input is a number (given that input always returns strings)
如果输入不是数字,我需要检查输入并发送错误消息。我将如何以最好的方式做到这一点?似乎找不到任何其他关于它的帖子,你我确信之前一定有人问过这个问题。
【问题讨论】:
标签: python-3.x
可能重复:
Python - How to check if input is a number (given that input always returns strings)
如果输入不是数字,我需要检查输入并发送错误消息。我将如何以最好的方式做到这一点?似乎找不到任何其他关于它的帖子,你我确信之前一定有人问过这个问题。
【问题讨论】:
标签: python-3.x
if not value.isdigit():
raise ValueError("Input must be numeric")
如果您从raw_input() 获得您的意见,@TokenMacGuy 的解决方案会更好,但否则这可行。
如果你想循环直到你得到正确的输入而不是引发错误,试试这个:
value = input("Input: ")
while not value.isdigit():
input("Input must be numeric, please reenter: ")
【讨论】:
编辑:
>>> 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
>>>
【讨论】:
while True:
user_input = raw_input("> Please enter a number:")
try:
n = float(user_input)
except ValueError:
continue
else:
break
【讨论】:
isdigit 函数可用于测试字符串是否全为数字且不为空:
val = '255'
val.isdigit()
【讨论】: