Ответ 1
Нет, str
объекты не имеют метода isnumeric
. isnumeric
доступен только для объектов Unicode. Другими словами:
>>> d = unicode('some string', 'utf-8')
>>> d.isnumeric()
False
>>> d = unicode('42', 'utf-8')
>>> d.isnumeric()
True
Я использовал очень простой справочник python3 для использования строковых операций, а затем я столкнулся с этой странной ошибкой:
In [4]: # create string
string = 'Let\ 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
ДАЕТ атрибут isnumeric
.
Нет, str
объекты не имеют метода isnumeric
. isnumeric
доступен только для объектов Unicode. Другими словами:
>>> d = unicode('some string', 'utf-8')
>>> d.isnumeric()
False
>>> d = unicode('42', 'utf-8')
>>> d.isnumeric()
True
isnumeric()
работает только с строками Unicode. Чтобы определить строку как Unicode, вы можете изменить свои определения строк следующим образом:
In [4]:
s = u'This is my string'
isnum = s.isnumeric()
Теперь будет сохранено значение False.
Примечание. Я также изменил ваше имя переменной, если вы импортировали строку модуля.
Один вкладыш:
unicode('200', 'utf-8').isnumeric() # True
unicode('unicorn121', 'utf-8').isnumeric() # False
или
unicode('200').isnumeric() # True
unicode('unicorn121').isnumeric() # False
если используется строка переноса Python 3 вокруг str, как показано ниже
str('hello').isnumeric()
Таким образом, он ведет себя как ожидалось