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

unicodedata.md

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

1> **Источник:** https://python-all.ru/3.15/library/unicodedata.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `unicodedata` – база данных Unicode89---1011Этот модуль предоставляет доступ к базе данных символов Unicode (UCD), которая defines character properties for all Unicode characters. The data contained in this database is compiled from the [UCD version 17.0.0](https://python-all.ru/3.15/library/unicodedata.html).1213The module uses the same names and symbols as defined by Unicode Standard Annex #44, [“Unicode Character Database”](https://python-all.ru/3.15/library/unicodedata.html).1415> **См. также**16>17> Дополнительную информацию о Unicode и о том, как использовать этот модуль, см. в [Unicode HOWTO](https://python-all.ru/3.15/howto/unicode.html#unicode-howto).1819| **Lookup** |  |20| --- | --- |21| [`lookup(name)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.lookup) | Поиск символа по имени |22| [`name(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.name) | Возвращает имя, присвоенное символу |23| **Numeric values** |  |24| [`decimal(chr)`](https://python-all.ru/3.15/library/decimal.html#module-decimal) | Десятичное значение символа |25| [`digit(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.digit) | Цифровое значение символа |26| [`numeric(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.numeric) | Числовое значение символа |27| **Свойства** |  |28| [`bidirectional(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.bidirectional) | Класс двунаправленности символа |29| [`block(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.block) | Блок Unicode символа |30| [`category(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.category) | Общая категория символа |31| [`combining(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.combining) | Канонический комбинирующий класс символа |32| [`decomposition(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.decomposition) | Отображение разложения символа |33| [`east_asian_width(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.east_asian_width) | Восточноазиатская ширина символа |34| [`extended_pictographic(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.extended_pictographic) | Проверка, обладает ли символ свойством Extended\_Pictographic |35| [`grapheme_cluster_break(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.grapheme_cluster_break) | Свойство Grapheme\_Cluster\_Break символа |36| [`indic_conjunct_break(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.indic_conjunct_break) | Свойство Indic\_Conjunct\_Break символа |37| [`isxidcontinue(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.isxidcontinue) | Проверка, является ли символ допустимым продолжением идентификатора |38| [`isxidstart(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.isxidstart) | Проверка, является ли символ допустимым началом идентификатора |39| [`mirrored(chr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.mirrored) | Зеркальное свойство символа |40| **Normalization** |  |41| [`normalize(form, unistr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.normalize) | Возвращает нормализованную форму строки |42| [`is_normalized(form, unistr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.is_normalized) | Проверка, нормализована ли строка Unicode |43| **Text segmentation** |  |44| [`iter_graphemes(unistr)`](https://python-all.ru/3.15/library/unicodedata.html#unicodedata.iter_graphemes) | Перебор графемных кластеров в строке |4546#### `unicodedata.lookup(name, /)`4748Ищет символ по имени. Если символ с указанным именем найден, возвращает соответствующий символ. Если не найден, возбуждается [`KeyError`](https://python-all.ru/3.15/library/exceptions.html#KeyError). Например:4950```python51>>> unicodedata.lookup('LEFT CURLY BRACKET')52'{'53```5455Символы, возвращаемые этой функцией, совпадают с теми, которые создаются управляющей последовательностью `\N` в строковых литералах. Например:5657```python58>>> unicodedata.lookup('MIDDLE DOT') == '\N{MIDDLE DOT}'59True60```6162Изменено в версии 3.3: добавлена поддержка псевдонимов имён [\[1\]](https://python-all.ru/3.15/library/unicodedata.html#id4) и именованных последовательностей [\[2\]](https://python-all.ru/3.15/library/unicodedata.html#id5).6364#### `unicodedata.name(chr, default=None, /)`6566Возвращает имя, присвоенное символу *chr*, в виде строки. Если имя не определено, возвращается *default*, а если он не указан, возбуждается [`ValueError`](https://python-all.ru/3.15/library/exceptions.html#ValueError). Например:6768```python69>>> unicodedata.name('½')70'VULGAR FRACTION ONE HALF'71>>> unicodedata.name('\uFFFF', 'fallback')72'fallback'73```7475#### `unicodedata.decimal(chr, default=None, /)`7677Возвращает десятичное значение, присвоенное символу *chr*, в виде целого числа. Если такое значение не определено, возвращается *default*, а если он не указан, возбуждается [`ValueError`](https://python-all.ru/3.15/library/exceptions.html#ValueError). Например:7879```python80>>> unicodedata.decimal('\N{ARABIC-INDIC DIGIT NINE}')81982>>> unicodedata.decimal('\N{SUPERSCRIPT NINE}', -1)83-184```8586#### `unicodedata.digit(chr, default=None, /)`8788Возвращает значение цифры, присвоенное символу *chr*, в виде целого числа. Если такое значение не определено, возвращается *default*, а если он не указан, возбуждается [`ValueError`](https://python-all.ru/3.15/library/exceptions.html#ValueError):8990```python91>>> unicodedata.digit('\N{SUPERSCRIPT NINE}')92993```9495#### `unicodedata.numeric(chr, default=None, /)`9697Возвращает числовое значение, присвоенное символу *chr*, в виде числа с плавающей запятой. Если такое значение не определено, возвращается *default*, а если он не указан, возбуждается [`ValueError`](https://python-all.ru/3.15/library/exceptions.html#ValueError):9899```python100>>> unicodedata.numeric('½')1010.5102```103104#### `unicodedata.category(chr, /)`105106Возвращает общую категорию, присвоенную символу *chr*, в виде строки. Имена общих категорий состоят из двух букв. Список кодов категорий см. в разделе [General Category Values документации базы данных символов Unicode](https://python-all.ru/3.15/library/unicodedata.html). Например:107108```python109>>> unicodedata.category('A')  # 'L' – буква, 'u' – заглавная110'Lu'111```112113#### `unicodedata.bidirectional(chr, /)`114115Возвращает класс двунаправленности, присвоенный символу *chr*, в виде строки. Если такое значение не определено, возвращается пустая строка. Список кодов двунаправленности см. в разделе [Bidirectional Class Values документации базы данных символов Unicode](https://python-all.ru/3.15/library/unicodedata.html). Например:116117```python118>>> unicodedata.bidirectional('\N{ARABIC-INDIC DIGIT SEVEN}') # 'A' – арабская, 'N' – число119'AN'120```121122#### `unicodedata.combining(chr, /)`123124Возвращает канонический класс комбинирования, присвоенный символу *chr*, в виде целого числа. Возвращает `0`, если класс комбинирования не определен. Дополнительную информацию см. в разделе [Canonical Combining Class Values базы данных символов Unicode](https://python-all.ru/3.15/library/unicodedata.html).125126#### `unicodedata.east_asian_width(chr, /)`127128Возвращает ширину восточноазиатского символа, присвоенную символу *chr*, в виде строки. Список значений ширины и дополнительную информацию см. в [Unicode Standard Annex #11](https://python-all.ru/3.15/library/unicodedata.html).129130#### `unicodedata.block(chr, /)`131132Возвращает блок [block](https://python-all.ru/3.15/library/unicodedata.html), назначенный символу *chr*. Например:133134```python135>>> unicodedata.block('S')136'Basic Latin'137```138139Добавлено в версии 3.15.140141#### `unicodedata.mirrored(chr, /)`142143Возвращает свойство зеркальности, присвоенное символу *chr*, в виде целого числа. Возвращает `1`, если символ определен как «зеркальный» в двунаправленном тексте, и `0` в противном случае. Например:144145```python146>>> unicodedata.mirrored('>')1471148```149150#### `unicodedata.isxidstart(chr, /)`151152Возвращает `True`, если *chr* является допустимым начальным символом идентификатора согласно [Приложению №31 к Стандарту Unicode](https://python-all.ru/3.15/library/unicodedata.html), то есть имеет свойство `XID_Start`. В противном случае возвращает `False`. Например:153154```python155>>> unicodedata.isxidstart('S')156True157>>> unicodedata.isxidstart('0')158False159```160161Добавлено в версии 3.15.162163#### `unicodedata.isxidcontinue(chr, /)`164165Возвращает `True`, если *chr* является допустимым символом идентификатора согласно [Приложению №31 к Стандарту Unicode](https://python-all.ru/3.15/library/unicodedata.html), то есть имеет свойство `XID_Continue`. В противном случае возвращает `False`. Например:166167```python168>>> unicodedata.isxidcontinue('S')169True170>>> unicodedata.isxidcontinue(' ')171False172```173174Добавлено в версии 3.15.175176#### `unicodedata.decomposition(chr, /)`177178Возвращает отображение разложения символа, присвоенное символу *chr*, в виде строки. Если такое отображение не определено, возвращается пустая строка. Например:179180```python181>>> unicodedata.decomposition('Ã')182'0041 0303'183```184185#### `unicodedata.grapheme_cluster_break(chr, /)`186187Возвращает свойство Grapheme\_Cluster\_Break, назначенное символу.188189Добавлено в версии 3.15.190191#### `unicodedata.indic_conjunct_break(chr, /)`192193Возвращает свойство Indic\_Conjunct\_Break, назначенное символу.194195Добавлено в версии 3.15.196197#### `unicodedata.extended_pictographic(chr, /)`198199Возвращает `True`, если символ имеет свойство Extended\_Pictographic, `False` в противном случае.200201Добавлено в версии 3.15.202203#### `unicodedata.normalize(form, unistr, /)`204205Возвращает нормальную форму *form* для строки Unicode *unistr*. Допустимые значения *form*: ‘NFC’, ‘NFKC’, ‘NFD’ и ‘NFKD’.206207Стандарт Unicode определяет различные нормальные формы строки Unicode на основе определений канонической эквивалентности и эквивалентности совместимости. В Unicode одни и те же символы могут быть представлены по-разному. Например, символ U+00C7 (ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА C С СЕДИЛЬЮ) может также быть представлен как последовательность U+0043 (ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА C) U+0327 (СОЕДИНИТЕЛЬНАЯ СЕДИЛЬ).208209Для каждого символа существует две нормальные формы: форма C и форма D. Нормальная форма D (NFD) также известна как каноническая декомпозиция и преобразует каждый символ в его разложенную форму. Нормальная форма C (NFC) сначала применяет каноническую декомпозицию, а затем снова составляет предварительно составные символы.210211В дополнение к этим двум формам существуют ещё две нормальные формы, основанные на совместимой эквивалентности. В Unicode поддерживаются некоторые символы, которые обычно были бы объединены с другими символами. Например, U+2160 (РИМСКАЯ ЦИФРА ОДИН) на самом деле то же самое, что и U+0049 (ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА I). Однако он поддерживается в Unicode для совместимости с существующими наборами символов (например, gb2312).212213Нормальная форма KD (NFKD) применяет совместимую декомпозицию, то есть заменяет все совместимые символы на их эквиваленты. Нормальная форма KC (NFKC) сначала применяет совместимую декомпозицию, а затем каноническую композицию.214215Даже если две строки Unicode нормализованы и выглядят одинаково для человеческого глаза, но одна содержит комбинируемые символы, а другая нет, они могут не быть равными при сравнении.216217#### `unicodedata.is_normalized(form, unistr, /)`218219Возвращает, находится ли строка Unicode *unistr* в нормальной форме *form*. Допустимые значения для *form*: 'NFC', 'NFKC', 'NFD' и 'NFKD'.220221Добавлено в версии 3.8.222223#### `unicodedata.iter_graphemes(unistr, start=0, end=sys.maxsize, /)`224225Возвращает итератор для перебора графемных кластеров. С необязательным *start* итерация начинается с этой позиции. С необязательным *end* итерация останавливается на этой позиции.226227Преобразование полученного элемента в строку возвращает подстроку, соответствующую графемному кластеру. Его атрибуты `start` и `end` обозначают начало и конец графемного кластера.228229Он использует расширенные правила графемных кластеров, определённые в Приложении №29 к Стандарту Unicode, [«Unicode Text Segmentation»](https://python-all.ru/3.15/library/unicodedata.html).230231Добавлено в версии 3.15.232233Кроме того, модуль предоставляет следующие константы:234235#### `unicodedata.unidata_version`236237Версия базы данных Unicode, используемая в этом модуле.238239#### `unicodedata.ucd_3_2_0`240241Это объект, который имеет большинство методов всего модуля, но использует версию 3.2 базы данных Unicode для приложений, которым требуется эта конкретная версия базы данных Unicode (например, IDNA).242243Сноски244245\[[1](https://python-all.ru/3.15/library/unicodedata.html#id1)\]246247[https://www.unicode.org/Public/17.0.0/ucd/NameAliases.txt](https://python-all.ru/3.15/library/unicodedata.html)248249\[[2](https://python-all.ru/3.15/library/unicodedata.html#id2)\]250251[https://www.unicode.org/Public/17.0.0/ucd/NamedSequences.txt](https://python-all.ru/3.15/library/unicodedata.html)252