Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
07 Июл 2023
2 мин
3479

Строковые префиксы «u» и «r» в Python и что такое «сырые» строковые литералы

В Python есть специальные префиксы, которые можно добавить перед строкой. Они сообщают интерпретатору, как обрабатывать эту строку. В частности, два таких

В Python есть специальные префиксы, которые можно добавить перед строкой. Они сообщают интерпретатору, как обрабатывать эту строку. В частности, два таких префикса — «u» и «r».

Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.

Префикс «u»

Префикс «u» используется для обозначения юникод-строки. В Python 2.x это было важно, поскольку стандартные строки были в кодировке ASCII, а не в Unicode.

Пример:

s = u'Привет, мир!'

В Python 3.x все строки по умолчанию являются юникод-строками, поэтому использование префикса «u» больше не обязательно. Однако его все еще можно использовать для обратной совместимости.

Префикс «r»

Префикс «r» создает «сырую» строку. Это означает, что все символы в строке будут интерпретироваться как есть, без обработки специальных символов, таких как обратные слеши. Это особенно полезно при работе с регулярными выражениями и путями к файлам.

Пример:

s = r'\n это не перенос строки'

В этом примере строка будет содержать буквально символы «\n», а не символ переноса строки.

Сочетание «ur»

Вы также можете комбинировать префиксы «u» и «r», создавая «сырую» юникод-строку.

Пример:

s = ur'Привет, \n мир!'

Такая строка будет в кодировке Unicode, и все в ней будет интерпретироваться буквально, без обработки специальных символов.

Преобразование обратно в «сырую» строку

Что касается преобразования юникод-строки обратно в «сырую» строку, то нет прямого способа сделать это. Вместо этого можно использовать функцию encode, чтобы преобразовать юникод-строку в байтовую строку с использованием необходимой кодировки.

На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.

UTF-8 и префикс «u»

Наконец, если система и текстовый редактор уже используют кодировку UTF-8, префикс «u» все равно будет полезен в Python 2.x, поскольку он сообщает интерпретатору, что строка должна быть обработана как юникод-строка. В Python 3.x это не имеет значения, поскольку все строки и так являются юникод-строками.

Добавить комментарий