Найти в Дзене

Python и Юникод

Как и все современные языки программирования и средства разработки, язык Python использует кодировку символов Unicode (Юникод). С этим могут быть связаны некоторые неприятности (о которых я буду рассказывать, но не сегодня). Однако в итоге это даёт преимущество - вам больше не надо думать, можно ли прочитать ваши исходные коды на другом компьютере или нет. Вы точно знаете, что ваши исходники используют Юникод, и на этом точка.

Однако с тех времён, когда многие редакторы исходного кода не поддерживали Юникод, в Python сохранилась одна полезная для тех лет возможность - обозначить строку, как строку в кодировке Юникод.

Маленькая буква u перед кавычками, в которые заключена строка, указывает на то, что предполагается создание строки Юникод:

st = u'Hello WORLD!'

В новых версиях Python это делать уже не обязательно, потому что все строки по умолчанию используют кодировку Юникод. Но эта возможность до сих пор поддерживается.

Ну а если вам вдруг придётся работать со старыми версиями (а это вполне возможно - всякое в жизни бывает), то буковку u надо будет применять обязательно, если вы хотите, чтобы ваша строка имела соответствующую кодировку. Иначе вы не сможете использовать возможности Юникод, например, вставлять в строку спецсимволы:

st = u'Two stars: \u272D and \u272F'
print st

Если же вы не используете букву u, то ошибки не будет, но строка не выведет символы, а выведет их коды:

Пример в Python 2
Пример в Python 2

Как видите, во 2-й версии Python ещё и заморочки с выводом русских букв. Если строка в Юникод, то вместо русских букв в IDLE будут выводиться краказябры, потому что редактор имеет другую кодировку. Кроме того, если вы не используете print, то вместо строки Юникод будут выводиться коды символов (см. рис выше).

В этом смысле в 3-й версии нет никаких сложностей:

Пример в Python 3
Пример в Python 3

Ну а вообще, чем больше я погружаюсь в Python, тем больше нахожу разных заморочек и подводных камней. И кажущаяся простота языка компенсируется необходимостью знать все эти подводные камни.

Ну да ладно. Дорогу осилит идущий. Подписывайтесь на канал, чтобы ничего не пропустить…

Что-то пошло не так, и нам не удалось загрузить комментарии. Попробуйте ещё раз
Рекомендуем почитать
Почему все ненавидят Python, за курсы или простоту языка
Народ, всем привет. С одной стороны, Python один из самых популярных языков программирования в мире на сегодняшний момент. Его хвалят за простоту, универсальность и читаемость кода, используют для разработки веб-приложений, анализа данных, машинного обучения, автоматизации задач и даже написания игр. В общем, куда не ткни, везде он. Однако, с другой стороны, несмотря на всё это, у Python есть и ярые критики, и язык нередко «хейтят», особенно в сообществах программистов. Но почему же так выходит,...
Нейросети замедлили работу программистов, а не помогли ускорить ее
Даже опытные программисты считали, что использование нейросети для написания кода экономит им время. Однако, когда исследователи проверили это на задачах из реального мира, выяснилось, что разработчики ошибаются. В действительности применение ИИ увеличило время, необходимое для реализации проектов. В нашу эпоху ИИ чаще всего называют «нейросети». Хотя Naked Science отмечал, что в действительности слово «интеллект» в названии таких ИИ не отражает реального положения вещей и что такие системы на самом...
🐍📋 F-строки в Python для интерполяции и форматирования строк
Из этой статьи вы узнаете, как использовать f-строки — инструмент для быстрой интерполяции и форматирования строк, который превосходит по эффективности и читабельности классические подходы с применением оператора % и метода .format(). Данная статья является переводом. Ссылка на оригинал. К концу этого руководства вы поймете, почему f-строки – это мощный инструмент, которым необходимо овладеть разработчику на Python. В этом самоучителе вы узнаете, как: Для извлечения максимальной пользы от этого руководства, вы должны быть знакомы с типом данных строк Python...
Документы, вакансии и контакты