如何检查字符串输入是否为数字?
我该怎么检查用户输入的字符串是否是数字(比如说 -1
、0
、1
等等)呢?
user_input = input("Enter something:")
if type(user_input) == int:
print("Is a number")
else:
print("Not a number")
上面的做法不行,因为 input
总是返回一个字符串。
30 个回答
58
这个方法 isnumeric()
可以解决这个问题:
>>>a = '123'
>>>a.isnumeric()
True
但要记住:
>>>a = '-1'
>>>a.isnumeric()
False
isnumeric()
会返回 True
,前提是字符串里的所有字符都是数字,并且至少有一个字符。
所以负数是不被接受的。
111
显然,这个方法对负数不管用,但对正数是有效的。
可以使用 isdigit()
这个函数。
if userinput.isdigit():
#do stuff
310
简单来说,试着把它转成一个整数,如果转换失败就退出。
try:
val = int(userInput)
except ValueError:
print("That's not an int!")
可以查看官方教程中的 处理异常 部分。