все Python 3unicodedataфункция
unicodedata.numeric()
числовые значения
Возвращает числовое значение символа как float: дроби '½', римские 'Ⅻ', иероглифические числа '四' и обычные цифры.
Синтаксис
unicodedata.numeric(chr, default=None, /)
Самая широкая из трёх функций и единственная, что возвращает float — даже для '5' это 5.0. Её множество совпадает с str.isnumeric(), поэтому isnumeric() истинно для '½', которую ни int(), ни float() не разберут. Работает по одному символу: строку '12' или '1½' нужно разбирать самостоятельно.
Примеры
import unicodedata
print(unicodedata.numeric('½'), unicodedata.numeric('Ⅻ'), unicodedata.numeric('四')) # → 0.5 12.0 4.0
print(unicodedata.numeric('5'), '½'.isnumeric()) # → 5.0 True
unicodedata.numeric('a') # → ValueError: not a numeric character
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности