Строка python – это символы Unicode

Что означают Unicode characters в строке python 3?

Начиная с Python 3.0, язык имеет тип str, который содержит символы Unicode, что означает любую строку, созданную с использованием «unicode rocks!», «Unicode rocks!» Или синтаксис с тройным кавычками, который хранится как Unicode

из документа python.

для строки abc , содержит ли Python [61, 62, 63] в памяти? (так как a – U + 0061)

Значит ли символ юникода обозначать коды кодировки unicode?

Значит ли символ юникода обозначать коды кодировки unicode?

Да и нет. Это зависит от версии python и того, как она была построена.

Для версий с 2.2 по 3.2 включительно python поддерживает как узкие, так и широкие Unicode-сборки (см. PEP-261 ). В узкой сборке диапазон Unicode ограничен BMP :

 Python 3.2.6 (default, Feb 21 2016, 12:42:00) [GCC 5.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> sys.maxunicode 65535 

и поэтому символы вне этого диапазона должны быть представлены как суррогатная пара :

 >>> s = '😬' >>> ord(s) 128556 >>> len(s) 2 

С введением PEP-0393 узкие сборки больше не поддерживаются в python3, и поэтому один символ всегда эквивалентен одной кодовой точке:

 Python 3.5.1 (default, Mar 3 2016, 09:29:07) [GCC 5.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> sys.maxunicode 1114111 >>> s = '😬' >>> ord(s) 128556 >>> len(s) 1