Почему нельзя перевернуть строку с флагом-эмодзи?

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Каким, по-вашему, будет результат выполнения следующего кода на Python?


Подобные вопросы заставляют меня сразу же открыть Python REPL и проверить код, потому что я думаю, что знаю правильный ответ, но не очень в нём уверен.

Вот как я рассуждал, когда впервые увидел этот вопрос:

  • Строкаflag содержит один символ.
  • [::-1] переворачивает строку flag.
  • Строка, обратная строке с одним символом, будет такой же, как и исходная.
  • Следовательно, reversed_flag должна быть равна "".

Это совершенно общезначимое утверждение. Но верен ли вывод? Давайте взглянем:


Что тут вообще происходит?

Действительно ли строка содержит один символ?


Если вывод из общезначимого утверждения ложно, одна из предпосылок обязана тоже быть ложной. Давайте начнём сверху:

Строка flag содержит один символ.

Так ли это? Как понять, сколько символов содержится в строке?

В Python можно использовать встроенную функцию len(), чтобы получить общее количество символов в строке:


Ой.

Это странно. Мы видим только один элемент в строке "", а именно флаг США, но длина 2 изменяет результат flag[::-1]. Так как обратным для значения "" является "", это подразумевает, что .

Как понять, какие символы находятся в строке?


Просмотреть все символы строки с помощью Python можно несколькими разными способами:


Эмодзи с флагом США — не единственный эмодзи с флагом из двух символов:


А вот флаг Шотландии:


Что тут происходит?

Источник: https://habr.com/ru/post/649179/


Интересные статьи

Интересные статьи

«Проработав более 2-х лет в компании в должности руководителя отдела, я понял, что нужно идти дальше. Мне нравилась компания, мне нравилась моя команда, но я чувствовал непреодолимую энергию, кото...
Автоматизация действий игрока всегда была серьёзной проблемой таких MMORPG, как World of Warcraft и Runescape. Подобный взлом игр сильно отличается от традиционных читов, например, в шу...
Spark приложения легко писать и легко понять, когда все идет по плану. Однако, это становится очень сложно, когда приложения Spark начинают медленно запускаться или выход...
Алекс Чапман, работающий в сфере этичного хакинга 13 лет, рассказал изданию The Daily Swig о будущем кибербезопасности, принципах, благодаря которым он остается успешным и востребованным ...
Аннотация: Пример реализации нового функционала в классе через добавление «флажка». Последствия. Альтернативный подход и сравнение результатов. Как избежать ситуации: «Архитектурный о...