如何检查字符串输入是否为数字?

185 投票
30 回答
871257 浏览
提问于 2025-04-16 14:21

我该怎么检查用户输入的字符串是否是数字(比如说 -101 等等)呢?

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!")

可以查看官方教程中的 处理异常 部分。

撰写回答