python:如何使用isnumeric()

Python: how do I use isnumeric()

本问题已经有最佳答案,请猛点这里访问。

有人能解释一下为什么下面会抛出异常吗?我应该如何处理变量s来找出它是否包含一个数字?

1
2
3
s = str(10)
if s.isnumeric():
    print s

当我阅读python文档时,上面的内容对我来说应该是有效的。见:

https://docs.python.org/3/library/stdtypes.html?highlight=isNumeric str.isNumeric

但我得到的是:

"AttributeError: 'str' object has no attribute 'isnumeric'"

任何帮助都是最感激的。

谢谢您!


尝试将replaceisdigit一起使用:

1
print(s.replace('.', '').isdigit())


对于python 2 isdigit(),对于python 3 isnumeric()。

python 2

1
2
3
s = str(10)
if s.isdigit():
    print s

python 3

1
2
3
 s = str(10)
 if s.isnumeric():
    print(s)


isdigit()替换isnumeric()

1
2
3
s = str(10)
if s.isdigit():
    print s


显然您使用的是python 2,因此不存在这样的方法。

这就是说,最要紧的办法就是把它转换成

1
2
3
4
try:
    print(float(s))  # or int(s)
except ValueError:
    print("s must be numeric")