Друкарня від WE.UA

Як виводити у консолі смайли із застосуванням emoji?

Зміст

У цій статті ми розберемося як виводити у консолі не лише текст, а й смайли та, також, розглянемо функції для роботи з ними. Тож, для цього ми будемо використовувати бібліотеку emoji, яка дозволяє працювати з різного роду смайлами.

Встановлення

Windows:

pip install emoji

MacOS:

pip3 install emoji

Linux:

pip install emoji

Тепер можемо нарешті розглянути функціонал даної бібліотеки на прикладах.

Виведення смайлів у консолі

Першою розглянемо функцію emojize(), яка надає можливість виводити текст зі смайлами. Ми просто передаємо текст з назвою конкретного смайлу у якості параметра, і у результаті отримаємо текст з вказаним смайлом. Ось приклад реалізації того, що я тільки но описав:

import emoji

emoji_text = "We love Python programming language :snake:"
print(emoji.emojize(emoji_text))

Результат роботи коду:

We love Python programming language 🐍

Якраз :snake: у даному випадку і є назвою смайлу. Замість цієї назви ми можемо вказати будь-яку іншу назву смайлу, тільки зберігаємо двокрапки між його назвою. Подивитися назви смайлів можна тут.

Думаю буде доречним навести ще пару прикладів цієї функції. Все робимо так само як і у першому прикладі тільки змінюємо назву смайла та текст.

Приклад 2:

second_example = "Some hearts :heart_on_fire: :yellow_heart: :orange_heart:"
print(emoji.emojize(second_example))
Some hearts ❤️‍🔥 💛 🧡

Приклад 3:

third_example = "Hi readers! :waving_hand:"
print(emoji.emojize(third_example))
Hi readers! 👋

Також emojize() має ще й параметр variant, який може мати два можливих значення та надає можливість змінити стиль смайла. Можливі значення та їх сенс описаний у таблиці. Щоправда, варто зазначити, що не усі смайли мають текстовий вигляд.

Значення

Сенс

“text_type“

Смайл буде відображатися у текстовому вигляді, тобто він буде чорно-білий.

“emoji_type“

Смайл буде відображатися у звичайному вигляді, тобто він буде кольоровий.

Ось приклади застосування параметра variant:

emoji_text = "It's time to dinner! :alarm_clock:"
print(emoji.emojize(emoji_text, variant="text_type"))
It's time to dinner! ⏰︎
emoji_text = "It's time to dinner! :alarm_clock:"
print(emoji.emojize(emoji_text, variant="emoji_type"))
It's time to dinner! ⏰️

Наступною функцією, котру ми подивимося, буде функція demojize(). Вона є прямою протилежністю emojize(), бо навідміну від неї вона показує назву смайла, а не сам смайл. Тут усе просто. Ось текст з нашого першого прикладу, тільки у цьому випадку ми вказали його як параметр функції demojize(). Приклад наведений нижче:

emoji_text = "We love Python programming language 🐍"
print(emoji.demojize(emoji_text))

А ось і результат:

We love Python programming language :snake:

Словник смайлів

Також назву та іншу інформацію про смайл можна подивитися завдяки словнику EMOJI_DATA[]. Ось як це зробити:

emoji_symbol = "🐍"
print(emoji.EMOJI_DATA[emoji_symbol])
{'en': ':snake:', 'status': 2, 'E': 0.6}

Отримали такий результат. Означення усіх ключів цього словника наведено у таблиці.

Ключ

Сенс

‘en‘

Назва смайлу англійською мовою, у даному випадку :snake:.

‘status‘

Статус смайла, який впливає на його відображення, якщо статус визначається як 2, то з ним все добре і воно добре відображається.

‘E‘

Версія бібліотеки emoji, у якій цей смайл було додано.

Вибираємо смайли з рядка

Далі подивомося на інші функції emoji. Тож, наступною на черзі буде функція analyze(). За допомогою функції analyze() ми можемо вибирати смайли з рядка.

Ось приклад її використання у коді:

emoji_text = "Student - 🧑‍🎓 farmer - 🧑‍🌾 cook - 🧑‍🍳"
analyzed_text = emoji.analyze(emoji_text)

for i in analyzed_text:
    print(i)

Отже, у цьому прикладі ми створюємо змінну emoji_text, якій присвоюємо рядок зі смайлами та передаємо її у функцію analyze(). У циклі for ми просто проходимося по кожному смайлу.

У результаті отримуємо:

Token(chars='🧑\u200d🎓', value=EmojiMatch(🧑‍🎓, 10:13))
Token(chars='🧑\u200d🌾', value=EmojiMatch(🧑‍🌾, 23:26))
Token(chars='🧑\u200d🍳', value=EmojiMatch(🧑‍🍳, 34:37))

У параметрі chars ми бачимо символи, які і утворюють смайли, а у параметрі value — позицію смайлів. Код \u200d потрібен для того, щоб з’єднати два смайли в один, бо у цьому прикладі ми використовуємо саме смайли, що складаються з двох смайлів. Цей код не займає жодного місця на екрані.

Також треба відмітити той факт, що на ми бачимо, що смайл займає місце як один символ, але насправді смайл часто може займати місце як декілька символів. Тому враховуйте це, коли будете дивитися на позиції смайлів (наприклад, 10:13, 23:26, 34:37).

Знаходимо смайли та їх позицію у рядку

Ще одна функція для роботи зі смайлами — emoji_list(). Ця функція знаходить усі смайли у рядку та показує їх позицію.

Ось приклад застосування:

emoji_text = "Faces of animals: 🦁 🐯 🐻 🐼"
print(emoji.emoji_list(emoji_text))
[{'match_start': 18, 'match_end': 19, 'emoji': '🦁'}, {'match_start': 20, 'match_end': 21, 'emoji': '🐯'}, {'match_start': 22, 'match_end': 23, 'emoji': '🐻'}, {'match_start': 24, 'match_end': 25, 'emoji': '🐼'}]

Отримали список, у якому є чотири словника з інформацією про кожен смайл у рядку. Тобто, ‘math_start‘ та ‘math_end‘ — початкова та кінцева позиції смайлів у рядку, ‘emoji‘ — вказує на конкретний смайл, до якого відноситься попередня інформація про позицію. І знову-таки, не забуваємо, що смайли часто займають місце більше ніж один символ.

Підраховуємо кількість смайлів

Переходимо до розгляду наступної функції, а саме функції emoji_count(). Щодо emoji_count(), то вона просто підраховує кількість смайлів у рядку.

Одразу тестуємо функцію:

emoji_text = "Random smiles: 😀 😁 😂 🤪 🤗"
print("Number of emojis:", emoji.emoji_count(emoji_text))
Number of emojis: 5

Одна з особливостей функції emoji_count() — параметр unique, який дозволяє встановити підраховувати (чи ні) смайли, що повторюються у наданому рядку. Додамо до нашого попереднього рядку зі смайлами вже наявний у цьому рядку смайл і протестуємо.

Ось приклад з параметром unique=”True”:

emoji_text = "Random smiles: 😀 😁 😂 🤪 🤗 😀"
print("Number of emojis:", emoji.emoji_count(emoji_text, unique=True))
Number of emojis: 5

Перевірка, чи є передане значення смайлом

Функція is_emoji() перевіряє, чи є передане у неї значення смайлом. Сенс функції доволі зрозумілий, тому одразу переходимо до прикладу:

emoji_text = "😀"
print(emoji.is_emoji(emoji_text))
True

Тобто у даному прикладі передане функції значення є смайлом. Ось ще один приклад:

emoji_text = "😀 😁 😂 🤪 🤗 😀"
print(emoji.is_emoji(emoji_text))
False

Щодо особливості цієї функції — вона надасть True, тільки коли весь рядок одним смайлом. Якщо рядок буде містити більше одного смайла, то вона покаже False. Також треба пам’ятати, що деякі смайли хоч і вважаються одним цілим, але складаються з двох. Ось такий приклад:

emoji_text = "🧑‍🎨"
print(emoji.is_emoji(emoji_text))
True

Для того, щоб перевірити чи має весь рядок тільки смайли є функція purely_emoji(). Ось приклад її використання:

emoji_text = "Random smiles: 😀 😁 😂 🤪 🤗 😀"
print(emoji.purely_emoji(emoji_text))
False

І ще один приклад:

emoji_text = "😀😁😂🤪🤗😀"
print(emoji.purely_emoji(emoji_text))
True

Тут ми були вимушені прибрати пробіли, бо тоді функція все ще буде вважати, що окрім смайлів у рядку є й щось інше.

Заміна смайлів

Тепер переходимо до огляду останньої функції — replace_emoji(). У можливості цієї функції входить заміна смайлів. Просто надаємо функції рядок зі смайлом та вказуємо у параметрі replace значення, на яке хочемо замінити наш смайл.

Приклад 1:

emoji_text = "This is 🤖"
print(emoji.replace_emoji(emoji_text, replace="👾"))
This is 👾

Приклад 2:

emoji_text = "This is 🤖"
print(emoji.replace_emoji(emoji_text, replace=" "))
This is  

Ось ми і побачили replace_emoji() у дії.

Висновок

Отже, у цій статті ми розлянули як користуватися бібліотекою emoji. Ознайомилися з функціями бібліотеки та оглянути їх роботу на прикладах.

Всім дякую за увагу!

Статті про вітчизняний бізнес та цікавих людей:

  • Шлейф сучасного смартфону та його призначення

    Шлейф - це тонка пластикова стрічка з ледь видимими доріжками і саме вона зʼєднує важливі компоненти мобільного, без яких він не запрацює. Власники пристроїв Xiaomi, які стикаються з потребою заміни цієї деталі, можуть підібрати відповідний варіант на сайті AKS.UA

    Теми цього довгочиту:

    Шлейф Для Мобільного
  • Чохли для iPhone 15: повний гід по кольорах, матеріалах і виробниках

    Перед тим як вибрати чохли для iPhone 15, варто визначитися, що саме ви хочете отримати від аксесуара. Комусь потрібен тонкий прозорий корпус, інший покупець шукає посилений захист, а для когось вирішальним стане колір або підтримка MagSafe

    Теми цього довгочиту:

    Чохли Для Iphone
  • Як побудована програма Meest China Academy

    Курс про товарний бізнес охоплює різні етапи роботи: від пошуку ідеї до перевірки товару, логістики та масштабування. Програма Meest China Academy містить 17 модулів, які послідовно розкривають ці теми без зведення всього навчання до однієї універсальної поради.

    Теми цього довгочиту:

    Meest
  • Які технології використані в Айфон 17

    Айфон 17 поєднує OLED-дисплей із частотою до 120 Гц, чип A19, дві камери Fusion 48 Мп і швидке заряджання через USB-C. У COMFY можна купити Айфон 17 з накопичувачем на 256 або 512 ГБ, вибравши конфігурацію відповідно до обсягу фото, відео та застосунків

    Теми цього довгочиту:

    Iphone 17
  • Як вибрати вживаний iPhone: коротке керівництво для розумної покупки

    Вторинний ринок смартфонів Apple активно зростає, і питання, як вибрати вживаний iPhone, стає актуальним для дедалі більшої кількості користувачів. Правильний підхід дозволяє отримати бу iPhone з актуальною iOS і доброю камерою за помітно нижчу ціну, ніж у нових пристроїв.

    Теми цього довгочиту:

    Iphone
Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Magnifique numérique
Magnifique numérique@magnifiquedigitalworld

Прекрасний цифровий світ

93Довгочити
1.9KПерегляди
27Підписники
Підтримати
На Друкарні з 14 липня 2025

Більше від автора

  • Метод zfill() у Python

    У цій статті ми розберемо метод zfill() у Python на основі практичних прикладів його використання.

    Теми цього довгочиту:

    It
  • Команда WHERE у SQL

    Сьогодні ми розглянемо команду WHERE та принцип роботи цієї команди.

    Теми цього довгочиту:

    Програмування
  • Робота з омогліфами у Python

    У цій статті ми розберемо бібліотеку confusables та її функціонал. Також ми розглянемо, що таке омогліфи та як їх використовують.

    Теми цього довгочиту:

    Програмування

Це також може зацікавити:

Коментарі (2)

Цікава обрана тема статті👍

Це також може зацікавити: