Python Glossary English

все Python 3unicodedataфункция

unicodedata.digit()

числовые значения

Возвращает значение символа-цифры как int, включая надстрочные и обведённые цифры вроде '²' и '①'.

Синтаксис

unicodedata.digit(chr, default=None, /)

Шире decimal(): '²' здесь 2, и это ровно множество str.isdigit(). Но int() такие символы не принимает, так что проверка isdigit() перед int() пропускает '²' и программа падает. Дроби вроде '½' и римские числа — не цифры: ValueError, их понимает только numeric().

Примеры

import unicodedata
print(unicodedata.digit('²'), unicodedata.digit('①'))  # → 2 1
try:
    int('²')
except ValueError as e:
    print(e)  # → invalid literal for int() with base 10: '²'
unicodedata.digit('½')  # → ValueError: not a digit

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности