В http://nedbatchelder.com/text/unipain.html поясняется, что:
В Python 2 есть два разных типа строковых данных. Обычный строковый литерал дает вам объект "str", в котором хранятся байты. Если вы используете префикс «u», вы получаете объект «unicode», в котором хранятся кодовые точки.
В чем разница между кодовой точкой и байтом? (Я думаю не о Python как таковом, а о концепции в целом). По сути, это просто набор битов, верно? Я думаю, что старый строковый литерал боли рассматривает каждые 8 бит как байт и обрабатывается как таковой, и мы интерпретируем байт как целые числа, и это позволяет нам отображать его в ASCII и расширенных наборах символов. В чем разница между интерпретацией целого числа как этого набора символов и интерпретацией «кодовой точки» как символов Unicode? В нем говорится, что объект Unicode Python хранит «кодовую точку». Разве это не то же самое, что и простые старые байты, за исключением, возможно, интерпретации (например, где биты каждого символа Unicode начинаются и заканчиваются как utf-8)?