python-3.x 为什么isnumeric不工作?

00jrzges  于 2023-06-25  发布在  Python
关注(0)|答案(5)|浏览(143)

我正在使用一个非常简单的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

vecaoik1

vecaoik11#

否,str对象没有isnumeric方法。isnumeric仅适用于unicode对象。换句话说:

>>> d = unicode('some string', 'utf-8')
>>> d.isnumeric()
False
>>> d = unicode('42', 'utf-8')
>>> d.isnumeric()
True
8zzbczxx

8zzbczxx2#

isnumeric()只适用于Unicode字符串。要将字符串定义为Unicode,您可以像这样更改字符串定义:

In [4]:
        s = u'This is my string'

        isnum = s.isnumeric()

现在将存储False。
注意:我还更改了变量名,以防您导入模块字符串。

xwbd5t1u

xwbd5t1u3#

一个内衬:

unicode('200', 'utf-8').isnumeric() # True
unicode('unicorn121', 'utf-8').isnumeric() # False

或者

unicode('200').isnumeric() # True
unicode('unicorn121').isnumeric() # False
zzlelutf

zzlelutf4#

如果使用python3将字符串 Package 在str周围,如下所示
String('hello ').isnumeric()
这样它的行为就像预期的那样

hof1towb

hof1towb5#

我碰巧遇到了一个奇怪的情况,我需要一个脚本在Python2和Python3中工作。如果其他人发现自己处于这种情况,我是这样做的:

s = "123"
try:
    isnum = s.isnumeric()
except AttributeError:
    isnum = unicode(s).isnumeric()

相关问题