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 не получится:

Поэтому использовать isnumeric() для того, чтобы проверить, содержит ли строка только десятичные цифры, точно не стоит.