ascii

Функция ascii() возвращает строку, содержащую представление объекта, пригодное для ASCII-вывода. Все символы, не входящие в стандартный набор ASCII, заменяются на escape-последовательности (например, \uXXXX).

Синтаксис

ascii(object)

Аргументы

  • object:
    • Что означает: Объект, для которого требуется получить ASCII-представление.
    • Возможные значения: Любой объект Python.

Возвращаемое значение

Функция возвращает строку, которая представляет объект так, чтобы она содержала только символы ASCII. Не-ASCII символы заменяются их escape-последовательностями.

Примеры использования

# Представление строки с не-ASCII символами
text = "Привет, мир!"
print(ascii(text))
# Вывод: "'\\u041f\\u0440\\u0438\\u0432\\u0435\\u0442, \\u043c\\u0438\\u0440!'"
# Работа с символами Unicode
emoji = "🙂"
print(ascii(emoji))
# Вывод: "'\\U0001f642'"
# Работа со сложными объектами
obj = {"ключ": "значение", "emoji": "🙂"}
print(ascii(obj))
# Вывод: "{'\\u043a\\u043b\\u044e\\u0447': '\\u0437\\u043d\\u0430\\u0447\\u0435\\u043d\\u0438\\u0435', 'emoji': '\\U0001f642'}"

Эквивалентный код

def pyplanet_ascii(obj):
    return repr(obj).encode("ascii", "backslashreplace").decode("ascii")

Частые ошибки

  1. Неправильное понимание замены символов:

    text = "Привет"
    print(ascii(text))
    # Вывод: "'\\u041f\\u0440\\u0438\\u0432\\u0435\\u0442'"
    

    Пояснение: Функция заменяет не-ASCII символы на escape-последовательности, а не удаляет их.

Часто задаваемые вопросы

  1. Чем отличается ascii() от repr()? Функция ascii() всегда возвращает строку, содержащую только ASCII-символы. repr() может содержать не-ASCII символы.

  2. Как использовать ascii() для вложенных структур? Все вложенные элементы (например, в списках или словарях) также преобразуются в ASCII-представление:

    data = {"ключ": ["значение", "🙂"]}
    print(ascii(data))
    # Вывод: "{'\\u043a\\u043b\\u044e\\u0447': ['\\u0437\\u043d\\u0430\\u0447\\u0435\\u043d\\u0438\\u0435', '\\U0001f642']}"
    
  3. Что будет с пустыми объектами? Пустые объекты, такие как пустые строки, списки или словари, остаются неизменными:

    print(ascii(""))  # Вывод: "''"
    print(ascii([]))  # Вывод: "[]"
    
  4. Как используется ascii() с числами? Числовые значения возвращаются без изменений:

    print(ascii(42))  # Вывод: '42'
    print(ascii(3.14))  # Вывод: '3.14'