Документация Python неофициальный перевод

unicodedata.md

188 строк · 9.2 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.0/library/unicodedata.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `unicodedata` – База данных Unicode89Этот модуль предоставляет доступ к базе данных символов Unicode, которая определяет свойства символов для всех символов Unicode. Данные в этой базе основаны на файле `UnicodeData.txt` версии 5.1.0, который публично доступен по адресу [ftp://ftp.unicode.org/](ftp://ftp.unicode.org/).1011Модуль использует те же имена и символы, что определены в формате файла UnicodeData версии 5.1.0 (см. [http://www.unicode.org/Public/5.1.0/ucd/UCD.html](https://python-all.ru/3.0/library/unicodedata.html)). Он определяет следующие функции:1213#### `[unicodedata.lookup]unicodedata.lookup(name)`1415Поиск символа по имени. Если символ с заданным именем найден, возвращается соответствующий символ. Если не найден, возникает1617[`KeyError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.KeyError)1819.2021#### `[unicodedata.name]unicodedata.name(chr[, default])`2223Возвращает имя, присвоенное символу2425*chr*2627, в виде строки. Если имя не определено, возвращается2829*default*3031; если не указано, возникает3233[`ValueError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.ValueError)3435.3637#### `[unicodedata.decimal]unicodedata.decimal(chr[, default])`3839Возвращает десятичное значение, присвоенное символу4041*chr*4243, в виде целого числа. Если такое значение не определено, возвращается4445*default*4647; если не указано, возникает4849[`ValueError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.ValueError)5051.5253#### `[unicodedata.digit]unicodedata.digit(chr[, default])`5455Возвращает значение цифры, присвоенное символу5657*chr*5859, в виде целого числа. Если такое значение не определено, возвращается6061*default*6263; если не указано, возникает6465[`ValueError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.ValueError)6667.6869#### `[unicodedata.numeric]unicodedata.numeric(chr[, default])`7071Возвращает числовое значение, присвоенное символу7273*chr*7475, в виде числа с плавающей точкой. Если такое значение не определено, возвращается7677*default*7879; если не указано, возникает8081[`ValueError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.ValueError)8283.8485#### `[unicodedata.category]unicodedata.category(chr)`8687Возвращает общую категорию, присвоенную символу8889*chr*9091, в виде строки.9293#### `[unicodedata.bidirectional]unicodedata.bidirectional(chr)`9495Возвращает двунаправленную категорию, назначенную символу9697*chr*9899, в виде строки. Если такое значение не определено, возвращается пустая строка.100101#### `[unicodedata.combining]unicodedata.combining(chr)`102103Возвращает канонический комбинирующий класс, присвоенный символу104105*chr*106107, в виде целого числа. Возвращает108109`0`110111, если комбинирующий класс не определен.112113#### `[unicodedata.east_asian_width]unicodedata.east_asian_width(chr)`114115Возвращает ширину восточноазиатского символа, присвоенную символу116117*chr*118119, в виде строки.120121#### `[unicodedata.mirrored]unicodedata.mirrored(chr)`122123Возвращает свойство зеркальности, присвоенное символу124125*chr*126127, в виде целого числа. Возвращает128129`1`130131, если символ определён как «зеркальный» в двунаправленном тексте, иначе132133`0`134135.136137#### `[unicodedata.decomposition]unicodedata.decomposition(chr)`138139Возвращает отображение декомпозиции символа, присвоенное символу140141*chr*142143, в виде строки. Пустая строка возвращается, если такое отображение не определено.144145#### `[unicodedata.normalize]unicodedata.normalize(form, unistr)`146147Возвращает нормальную форму *form* для строки Unicode *unistr*. Допустимые значения *form*: ‘NFC’, ‘NFKC’, ‘NFD’ и ‘NFKD’.148149Стандарт Unicode определяет различные формы нормализации строки Unicode, основанные на определении канонической эквивалентности и совместимой эквивалентности. В Unicode некоторые символы могут быть выражены разными способами. Например, символ U+00C7 (LATIN CAPITAL LETTER C WITH CEDILLA) также может быть выражен как последовательность U+0327 (COMBINING CEDILLA) U+0043 (LATIN CAPITAL LETTER C).150151Для каждого символа существует две нормальные формы: форма C и форма D. Нормальная форма D (NFD) также известна как каноническая декомпозиция и преобразует каждый символ в его разложенную форму. Нормальная форма C (NFC) сначала применяет каноническую декомпозицию, а затем снова составляет предварительно составные символы.152153В дополнение к этим двум формам существуют ещё две нормальные формы, основанные на эквивалентности совместимости. В Unicode поддерживаются некоторые символы, которые обычно были бы объединены с другими символами. Например, U+2160 (РИМСКАЯ ЦИФРА ОДИН) на самом деле то же самое, что U+0049 (ЛАТИНСКАЯ ПРОПИСНАЯ БУКВА I). Однако он поддерживается в Unicode для совместимости с существующими наборами символов (например, gb2312).154155Нормальная форма KD (NFKD) применяет декомпозицию совместимости, то есть заменяет все символы совместимости на их эквиваленты. Нормальная форма KC (NFKC) сначала применяет декомпозицию совместимости, а затем каноническую композицию.156157Даже если две строки Unicode нормализованы и выглядят одинаково для человеческого глаза, но одна содержит комбинируемые символы, а другая нет, они могут не быть равными при сравнении.158159Кроме того, модуль предоставляет следующую константу:160161#### `[unicodedata.unidata_version]unicodedata.unidata_version`162163Версия базы данных Unicode, используемая в этом модуле.164165#### `[unicodedata.ucd_3_2_0]unicodedata.ucd_3_2_0`166167Это объект, который имеет те же методы, что и весь модуль, но использует версию базы данных Unicode 3.2 для приложений, которым требуется эта конкретная версия базы данных Unicode (например, IDNA).168169Примеры:170171```python172>>> import unicodedata173>>> unicodedata.lookup('LEFT CURLY BRACKET')174u'{'175>>> unicodedata.name('/')176'SOLIDUS'177>>> unicodedata.decimal('9')1789179>>> unicodedata.decimal('a')180Traceback (most recent call last):181  File "<stdin>", line 1, in ?182ValueError: not a decimal183>>> unicodedata.category('A')  # 'L' – буква, 'u' – заглавная184'Lu'185>>> unicodedata.bidirectional('\u0660') # 'A' – арабская, 'N' – число186'AN'187```188