Как найти длину строки в Python

В Python вы можете получить длину строки (т.е. количество символов) с помощью встроенной функции len(). Для этого можно передать в эту функцию строку. На выходе вы получите количество символов в переданной строке в виде целочисленного значения.

Скачивайте книги ТОЛЬКО на русском языке у нас в телеграм канале: PythonBooksRU
s = 'abcde'

print(len(s))

# 5

Полноширинные и полуширинные символы

Как полноширинные, так и полуширинные символы рассматриваются как один символ (длина = 1).

s = 'あいうえお'

print(len(s))
# 5

s = 'abcdeあいうえお'

print(len(s))
# 10

Экранированные последовательности и специальные символы

В Python специальные символы, такие как символ табуляции, экранируются, т.е. предваряются обратной косой чертой, например \t. Сама обратная косая черта тоже экранируется и записывается как \\. Специальные символы вроде \t и \\ рассматриваются как один символ.

s = 'a\tb\\c'
print(s)
# a b\c

print(len(s))
# 5

В сырых строках, где экранированные последовательности не рассматриваются как специальные символы, строка читается как есть. И количество символов в ней считается буквально.

s = r'a\tb\\c'
print(s)
# a\tb\\c

print(len(s))
# 7

Экранированная последовательность Юникода \uXXXX также рассматривается как один символ.

s = '\u3042\u3044\u3046'
print(s)
# あいう

print(len(s))
# 3

Но в сырых строках эти последовательности также не обрабатываются специально:

s = r'\u3042\u3044\u3046'
print(s)
# \u3042\u3044\u3046

print(len(s))
# 18

Разрывы строки

Символ перевода строки \n также рассматривается как один символ.

s = 'a\nb'
print(s)
# a
# b

print(len(s))
# 3

Обратите внимание, что если используется \r\n (возврат каретки + перевод строки), то это считается как два символа, \r и \n.

s = 'a\r\nb'
print(s)
# a
# b

print(len(s))
# 4

Если \n и \r\n смешаны, количество символов в каждом разделе новой строки различно.

s = 'abc\nabcd\r\nab'
print(s)
# abc
# abcd
# ab

print(len(s))
# 12

Если \n и \r\n смешаны, или вы не знаете, какой из них используется, используйте метод splitlines(), который возвращает список строк.

print(s.splitlines())
# ['abc', 'abcd', 'ab']

Количество элементов в списке, полученном с помощью функции splitlines(), равно количеству строк.

print(len(s.splitlines()))
# 3

Количество символов в каждой строке может быть получено с помощью list comprehension.

print([len(line) for line in s.splitlines()])
# [3, 4, 2]

Общее количество символов можно подсчитать с помощью функции sum(). Ее можно использовать с генераторным выражением.

print(sum(len(line) for line in s.splitlines()))
# 9

Перевод статьи «Get the length of a string (number of characters) in Python».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *