В 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».