все Python 3unicodedataфункция
unicodedata.decimal()
числовые значения
Возвращает значение десятичной цифры (категория Nd) как int: работает и для арабских, и для деванагари, и для других цифр.
Синтаксис
unicodedata.decimal(chr, default=None, /)
Это самая узкая из трёх функций: '²' и '½' для неё не цифры — ValueError, если не передан default. Её множество совпадает с str.isdecimal() и с тем, что понимает int(): int('٣') == 3, а int('²') падает. Поэтому проверять ввод перед int() надо isdecimal(), а не isdigit().
Примеры
import unicodedata
print(unicodedata.decimal('٣'), int('٣')) # → 3 3
print(unicodedata.decimal('²', -1), '²'.isdigit()) # → -1 True
unicodedata.decimal('²') # → ValueError: not a decimal
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности