Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: len, string, unicode, multibyte, python

Что произойдёт, если вызвать len() на строке с многобайтовыми символами — вернёт ли функция количество символов?

Проверяет понимание работы функции len() со строками, содержащими многобайтовые символы, и различие между количеством символов и байтов.

Короткий ответ

Функция len() в Python возвращает количество символов в строке, а не количество байтов. Для строк с многобайтовыми символами (например, эмодзи или кириллица) len() вернёт количество символов, так как Python использует Unicode для представления строк. Каждый символ считается за один элемент, независимо от его размера в байтах.

Длинный ответ

Как работает len() с многобайтовыми символами

В Python строки хранятся как последовательности Unicode-символов. Функция len() возвращает количество этих символов, а не количество байтов, которые они занимают в памяти. Это означает, что для строки с многобайтовыми символами, такими как эмодзи или символы кириллицы, len() вернёт количество символов, а не байтов.

Пример

# Строка с эмодзи (многобайтовый символ)
s = "Привет 😊"
print(len(s))  # Выведет 8: 6 букв + пробел + эмодзи

# Строка с кириллицей
t = "Привет"
print(len(t))  # Выведет 6, хотя каждый символ занимает 2 байта в UTF-8

Практическое применение

Это важно при обработке текста, где нужно считать символы, а не байты, например, при валидации длины ввода пользователя или работе с текстовыми данными в веб-приложениях. Если нужно узнать размер в байтах, используйте len(s.encode('utf-8')).

Вывод

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

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Python

    Python

Ключевые слова

#len

#string

#unicode

#multibyte

#python

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.