isnumeric
Начнём с самого «широкого» метода, который охватывает больше всего возможных вариантов: isnumeric()
.
Смотрим в документацию: возвращает True
, если все символы в строке являются числовыми и при этом в ней есть как минимум 1 символ. В противном случае возвращает False
. Числовые символы включают в себя все символы, которые в таблице Unicode относятся к числовым, в том числе символы вроде ⅕.
Наглядная демонстрация
Выполните этот код на своём ПК:
unicode_numerics = ['⅕', '零', '²']
for num in unicode_numerics:
print(num.isnumeric())
Почему код нельзя запустить прямо здесь?
В учебной реализации Python, используемой на YtYt, методы isnumeric()
и isdigit()
не вполне корректно работают с «не ASCII»-символами из таблицы Unicode. В учебных целях эти методы не используются, а их доработка на уровне исходного кода потребует немало времени, поэтому ради одной статьи это нецелесообразно. Приносим извинения за небольшие неудобства.
Вы увидите, что в каждом из 3 случаев получен результат True
. Но вполне очевидно, что привести эти числа к int
не получится: