我正在通过一个非常简单的python3指南来使用字符串操作,然后我遇到了这个奇怪的错误:
In [4]: # create string
string = 'Let\'s test this.'
# test to see if it is numeric
string_isnumeric = string.isnumeric()
Out [4]: AttributeError Traceback (most recent call last)
<ipython-input-4-859c9cefa0f0> in <module>()
3
4 # test to see if it is numeric
----> 5 string_isnumeric = string.isnumeric()
AttributeError: 'str' object has no attribute 'isnumeric'
问题是,据我所知,str
DOES 有一个属性isnumeric
。
答案 0 :(得分:13)
不,str
个对象没有isnumeric
方法。 isnumeric
仅适用于unicode对象。换句话说:
>>> d = unicode('some string', 'utf-8')
>>> d.isnumeric()
False
>>> d = unicode('42', 'utf-8')
>>> d.isnumeric()
True
答案 1 :(得分:3)
isnumeric()
仅适用于Unicode字符串。要将字符串定义为Unicode,您可以更改字符串定义,如下所示:
In [4]:
s = u'This is my string'
isnum = s.isnumeric()
现在将存储False。
注意:如果您导入了模块字符串,我也更改了您的变量名称。
答案 2 :(得分:2)
One Liners:
unicode('200', 'utf-8').isnumeric() # True
unicode('unicorn121', 'utf-8').isnumeric() # False
或者
unicode('200').isnumeric() # True
unicode('unicorn121').isnumeric() # False
答案 3 :(得分:0)
如果使用python 3将字符串环绕在 str 周围,如下所示
str('hello')。isnumeric()
通过这种方式表现出预期的效果