Escape-символи

Модуль 1: Python Core
Рівень 6 , Лекція 12
Відкрита

13.1 Список escape-символів

Escape-символи з'явилися в ранні дні комп'ютерних технологій як спосіб вставки керуючих кодів в текстові рядки. Історично, вони використовувалися для управління пристроями, такими як принтери і телетайпи, дозволяючи вставляти команди, такі як перенесення рядка або повернення каретки, безпосередньо в потоки даних.

З розвитком програмування ці символи стали частиною стандартних мов програмування, включаючи C, звідки і перейшли в Python та інші мови. В Python escape-символи позначаються зворотнім слешем \, за яким слідує символ, що визначає їх функцію, наприклад \n для нового рядка.

Escape-символи в Python грають ключову роль в обробці рядків, дозволяючи вставляти спеціальні символи, які інакше було б важко чи неможливо включити безпосередньо в рядки

Ось таблиця з найпопулярнішими з них

Escape-символ Опис
\\ Зворотний слеш
\' Одинарна лапка
\" Подвійна лапка
\n Новий рядок
\r Повернення каретки
\t Горизонтальна табуляція
\b Забій, видаляє попередній символ
\f Прогін сторінки
\a Звуковий сигнал

Прогін сторінки і звуковий сигнал – це все залишилося з тих часів, коли текст видавали на принтер або на телетайп. Але, як кажуть, з пісні слів не викинеш.

Зате, наприклад горизонтальна табуляція постійно використовується для вирівнювання коду.

13.2 Вставка Unicode-символів

З початку винайдення комп'ютерів вони могли працювати лише з рядками, що містять латинські літери, цифри, числа та трохи знаків. Перший набір символів (кодування ASCII) включав у себе всього 128 символів, в тому числі керуючі типу «прогін сторінки» :)

Ідея Unicode виникла лише в 1987 році, коли Джо Бекер з Xerox і Лі Коллінз з Apple почали обговорення можливості створення нової системи кодування символів, яка могла б підтримувати всі письменності світу.

Вони уявляли Unicode як 16-бітну систему, що дозволяє використовувати 65,536 унікальних символів, що, на їхню думку, було б достатньо для покриття всіх відомих скриптів. Але це, звісно, виявилося не так :)

З часом Unicode розширився, включивши не лише більше «мовних скриптів», але й обширний набір символів, емодзі та історичні тексти. Unicode 13.0, випущений у березні 2020 року, містить понад 143,000 символів, охоплюючи понад 150 «скриптів» і безліч символьних наборів, що робить його комплексною системою кодування для цифрової епохи.

Unicode був доданий в Python у версії 2.0, яка вийшла в жовтні 2000 року. Це значна зміна дозволила Python краще підтримувати міжнародні мови та символи, спрощуючи розробку міжнародних додатків.

Кодування файлів з кодом Python підтримує Unicode, так що ви можете вставляти в текст символи на будь-якій мові:


print("Come to the Dark Side") # Англійська
print("Ven al Lado Oscuro") # Іспанська
print("Komm auf die dunkle Seite") # Німецька
print("暗黒面に来なさい") # Японська
print("来到黑暗面") # Китайська
        

Вставити в текст символ Unicode за його номером можна з допомогою 16-тиричного кодування:

Escape-символ Опис
\\uxxxx Символ Unicode з 16-бітним шістнадцятковим значенням xxxx
\\Uxxxxxxxx Символ Unicode з 32-бітним шістнадцятковим значенням xxxxxxxx

13.3 Вставка смайликів

Вставка смайликів або емодзі в текст і код на Python може бути цікавим способом покращити візуальне сприйняття та емоційний зміст повідомлень. Емодзі — це символи Unicode, і їх можна додавати безпосередньо в рядкові дані Python.

Емодзі в Python використовують стандарт Unicode, який включає тисячі символів, в тому числі безліч смайликів. Кожен емодзі має унікальний Unicode номер, що дозволяє вставляти його в текст.

Приклади вставки емодзі

Для вставки емодзі достатньо просто скопіювати його з інтернету і вставити в текст


# Приклад виводу смайлика
print(" 😀 ")  # виведе 😀
        

Приклади вставки емодзі з допомогою Unicode

Для вставки емодзі достатньо знати його код і використати його в рядку з префіксом u:


# Приклад виводу смайлика
print(u"\U0001F600")  # 😀
        

Робота з бібліотеками

Існують бібліотеки, такі як emoji, які спрощують роботу з емодзі:


# Використання бібліотеки emoji
from emoji import emojize

print(emojize(":grinning_face:"))
        

Емодзі широко використовуються в мобільних і веб-додатках, і Python не виняток. Вони можуть додати зрозумілість та емоційну виразність у чат-боти, форуми, коментарі та інші види користувацького взаємодії.

1
Опитування
Робота зі строками, рівень 6, лекція 12
Недоступний
Робота зі строками
Робота зі строками
Коментарі (10)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
negoda Рівень 31
19 липня 2025
Кто не понял в каком формате вводить Юникод во втором задании, то вместо + в коде Юникод символа, у вас должно быть 000. То-есть не U+1F600 а U0001F600, тогда все будет работать. Код второй задачи :

print('\U0001F600')
print('\U0001F923')
print('\U0001F602')
Pavlo Kushnir Рівень 26
2 червня 2025
В таблиці Юнікод є, навіть, лінейне письмо А та Б. Неймовірно! Якби я знав про це в той тиждень, коли готував лекцію по крито-мікенській культурі, я б не малював символи в Корел.
Oleksandr Рівень 21
9 квітня 2025
В українській мові немає такого як "одинарна лапка" чи "подвійна лапка" Є ЛАПКИ (множина)
Pavlo Kushnir Рівень 26
2 червня 2025
Тобто, ви звернули увагу адмінів на помилку ще вранці 9 квітня, а помилка досі не виправленя. Відчуваю, що все що я писав втрачає сенс. Ймовірно, в ДжаваРаш є особливий підхід у роботі з тестувальниками рівня Джун. Страждає тільки результат.
Олексій Рівень 32
24 червня 2025
Навіть якщо слова такого нема, це не означає, що не можна так казати. Будь які слова колись не існували, але їх вигадали, щоб можна було спілкуватись. Якщо кажемо про одну, то тупо казати лапки. Типу "відкриваюча лапки". дісонанс. Краще використати слово, якого нема в словнику, ніж звучати як рагуль. І ще гірше - якщо тебе навіть зрозуміти не зможуть
Andriy Trubchanin Рівень 23
8 лютого 2025

\\uxxxx
Оцей подвійний слеш незрозуміло для чого. В рядках Python юнікоди пишуться з одним слешем.

print(u"\U0001F600")
Для Python 3 префікс u вже неактуальний.
Mykola Рівень 21
3 лютого 2025
У лекціях використовується русизм "строка" (від string) замість "рядок". Можливо варто тоді у лекціях замінити усі "рядки" на "строки" якщо це не помилка і ви бачите сенс? Або навпаки "строки" на "рядки", бо один раз "строка", у наступному реченні вже "рядок"... складається враження, що мова йде про різні речі, у такому разі було б не зайвим одразу пояснювати різницю. 🤔
Pavlo Kushnir Рівень 26
2 червня 2025
На це я теж звернув увагу. В лекції 6 чи 7 я отримав фітбек від сайту.
negoda Рівень 31
19 липня 2025
У меня создается впечатление что перевеод осуществлялся машинным способом, потому что дело не только в таких ошибках, где используются русизмы, а в том что часто встречаются слова которые, элементарно, не правильно склонены, что-то вроде : "великий рядки", "операції над числа", "довільна кілкість число" и так далее. Так что это либо ошибка машинного перевода, либо те ребята что делали курс недоглядели.
Mykola Рівень 21
3 лютого 2025
Для швидкого пошуку смайликів, я користуюся за звичай "Win + ." на віндовс. 😉