Python

Как узнать длину строки в Python: len, пробелы, переносы и Unicode

Длину строки в Python узнают через функцию `len()`. Она возвращает количество символов в строке.

Ниже — разделы про простой пример, пробелы тоже считаются и перенос строки тоже считается, чтобы быстро понять устройство материала, практические ограничения и типовые точки отказа.


Длину строки в Python узнают через функцию len(). Она возвращает количество символов в строке

text = "Python"
print(len(text))

Результат

6

len() работает не только со строками, но и со списками, кортежами, словарями и другими коллекциями. Но в этом материале смотрим именно строки

Простой пример

name = "Анна"
length = len(name)

print(length)

Результат

4

Русские буквы считаются как обычные символы. В строке Анна четыре символа

Пробелы тоже считаются

text = "Привет мир"
print(len(text))

Результат

10

Здесь 6 букв в слове Привет, один пробел и 3 буквы в слове мир. Пробел — тоже символ

Если пробелы в начале или конце строки не нужны, их можно убрать через strip()

text = "  Привет  "

print(len(text))
print(len(text.strip()))

Первый вариант считает все пробелы, второй — строку после удаления пробелов по краям

Перенос строки тоже считается

text = "Первая строка\nВторая строка"
print(len(text))

Символ \n — это один символ переноса строки. На экране он переносит текст, но внутри строки считается как отдельный символ

Это важно, если вы считаете длину текста из файла или поля ввода

Проверка минимальной длины пароля

len() часто используют для проверки ввода

password = input("Введите пароль: ")

if len(password) < 8:
    print("Пароль слишком короткий")
else:
    print("Пароль подходит по длине")

Если пользователь введет меньше 8 символов, программа покажет предупреждение

Проверка пустой строки

Можно проверить длину напрямую

text = ""

if len(text) == 0:
    print("Строка пустая")

Но в Python чаще пишут короче

if not text:
    print("Строка пустая")

Оба варианта работают. Для новичка len(text) == 0 иногда понятнее, но со временем if not text читается естественно

Как посчитать длину каждой строки в списке

words = ["python", "код", "программа"]

for word in words:
    print(word, len(word))

Результат

python 6
код 3
программа 9

Такой прием полезен, если нужно найти короткие или длинные слова

words = ["python", "код", "программа"]

for word in words:
    if len(word) > 5:
        print(word)

Найти самое длинное слово

words = ["кот", "программа", "python", "данные"]
longest = ""

for word in words:
    if len(word) > len(longest):
        longest = word

print(longest)

Результат

программа

Это хорошая учебная задача: здесь есть список, цикл, условие, переменная и len()

Эмодзи и сложные символы

Обычно len() считает символы так, как ожидает новичок

print(len("кот"))
print(len("🐍"))

Но с некоторыми сложными emoji и комбинированными символами результат может отличаться от того, что человек визуально считает «одним значком». Для обычных учебных задач это редко важно, но в интерфейсах и мессенджерах такие нюансы встречаются

len() не считает байты

len(text) считает символы строки, а не размер файла и не байты кодировки

text = "Привет"
print(len(text))
print(len(text.encode("utf-8")))

Первое значение — количество символов. Второе — количество байт после кодирования в UTF-8. Для русских букв это разные числа

Мини-практика

Напишите программу, которая просит пользователя ввести имя и проверяет, что оно не пустое и не длиннее 20 символов

name = input("Введите имя: ").strip()

if len(name) == 0:
    print("Имя не должно быть пустым")
elif len(name) > 20:
    print("Имя слишком длинное")
else:
    print("Имя принято")

После этого попробуйте ввести пустую строку, имя из пробелов и длинное имя

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

Думать, что пробелы не считаются

Пробелы — обычные символы. Если они не нужны по краям, используйте strip()

Путать символы и байты

len(text) считает символы строки. Для размера в байтах нужно кодирование через encode()

Забыть скобки у len

Правильно len(text), а не text.len() и не len text

Проверять пустую строку через text[0]

Если строка пустая, text[0] вызовет ошибку. Для проверки пустоты используйте if text или len(text)

Что почитать дальше по Python

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

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x