Проверяет понимание работы функции 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() всегда возвращает количество символов, что удобно для работы с текстом на разных языках. Используйте её, когда нужно считать символы, а не байты.