Перейти к содержимому

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

  • автор:

Как посмотреть длину строки python

Самый простой и распространённый способ найти длину строки в Python это использовать функцию len() .

>>> word = 'hexlet' >>> len(word) 6 

Строки в Python

В Python строка — это последовательность символов. Вот примеры:

 name = 'Tyler' greetings = "Hi! I am Tyler" bio = """Name: Tyler weight: 70 kg height: 180 cm """ 

Tyler — это строковый литерал. Строковые литералы создают строку и помещают её в память. name — это имя строки, находящейся в памяти. У одной и той же строки может быть несколько имён: his_name = name .

Строковые литералы могут использовать и двойные кавычки, особенно если внутри них есть одинарная: Hi! I am Tyler .

Наконец, строки в Python могут содержать несколько строк текста. Всё потому, что перенос строки — это обычный символ. Запустите у себя и понаблюдайте за поведением следующих фрагментов кода:

print('1\n2') print("""1 2""") 

Записать строку в несколько строк текста можно с помощью трёх двойных кавычек.

Как получить строку из числа

Строку можно получить двумя способами:

  1. Задать с помощью строкового литерала, как в примерах выше
  2. Получить из переменной другого типа

Если нам к числу нужно отнестись, как к строке, его можно преобразовать с помощью str :

a = 42 b = str(a) # то же самое, что и b = str(42) или b = '42' print(type(a)) # Выведет: print(type(b)) # Выведет: print('a * 2 = ', a * 2) # Выведет: a * 2 = 84 print('b * 2 = ', b * 2) # Выведет: b * 2 = 4242 

Как получить длину строки

Длину строки получить нетрудно:

print(len('Hello world')) # Выведет: 11 

Важно только помнить, что при подсчёте длины учитываются все символы, в том числе перенос строки:

print(len("""Hello world """)) # Выведет: 12 

Что можно делать со строками

Над строками можно осуществлять:

  • арифметические операции
  • подстановку переменных
  • много других полезных вещей

Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.

Четыре способа найти длину строки в Python

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

Итак, в языке программирования Python строки относят к категории неизменяемых последовательностей, что необходимо помнить при вызове методов и функций. Теперь давайте представим, что у нас есть строка, и нам требуется найти её длину:

 
Input: 'otus' Output: 4

Сделать это можно несколькими способами.

Определяем длину строки в Python: способ № 1

Начнём с общеизвестного и наиболее популярного — использования функции len() . Эта встроенная функция возвращает количество символов в исследуемой нами строке, определяя таким образом её длину. Тут всё элементарно, и вы можете проверить код ниже на любом онлайн-компиляторе:

 
# Находим длину строки в Python с помощью функции len() str = 'otus' print(len(str))

Итогом работы функции станет следующий вывод в терминал:

Ищем длину строки в «Питоне»: способ № 2

Чтобы подсчитать количество символов в строке Python, мы можем воспользоваться циклом for и счётчиком. Тут тоже всё просто, т. к. определение длины происходит путём подсчёта числа итераций.

 
# Python-код возвращает длину строки def findLen(str): counter = 0 for i in str: counter += 1 return counter str = "otus" print(findLen(str))

Соответственно, наш вывод в консоли тоже будет равен 4.

Поиск длины строки в Python: способ № 3

Теперь давайте воспользуемся циклом while. Мы «нарежем» строку, укорачивая её на каждой итерации, в результате чего получим пустую строку и остановку цикла. А подсчёт количества итераций снова позволит нам вывести в терминал искомую длину.

 
# Python-код, возвращающий длину строки def findLen(str): counter = 0 while str[counter:]: counter += 1 return counter str = "otus" print(findLen(str))

Находим длину строки в Python: способ № 4

Теперь воспользуемся строковым методом объединения. Он принимает итеративный элемент, возвращая строку, являющуюся объединением строк в итерируемом нами элементе. Разделитель между элементами — исходная строка, для которой и вызывается метод. Применение метода объединения с последующим подсчётом объединённой строки в исходной строке тоже позволит нам получить длину строки на «Питоне».

 
# Python-код, возвращающий длину строки def findLen(str): if not str: return 0 else: some_random_str = 'py' return ((some_random_str).join(str)).count(some_random_str) + 1 str = "otus" print(findLen(str))

Как и во всех примерах выше, в консоль выведется количество символов в строе ‘otus’, равное 4. Вот и всё!

Хотите знать про Python гораздо больше? Записывайтесь на наш курс для продвинутых разработчиков!

Как посчитать длину строки без управляющих символов

Как вернуть длину строки не считая управляющие символы? Например строка будет 'Denis\nShamra\v\t\r' len строки должeн равняться 11. Подскажите можно ли тут использовать метод строки какой-то или только можно использовать регулярные выражения?

Отслеживать
задан 24 дек 2022 в 6:25
196 11 11 бронзовых знаков

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Можно воспользоваться тем, что все управляющие символы находятся в начале таблицы Unicode , поэтому их числовое представление через ord не превышает 31 :

a = 'Denis\nShamra\v\t\r' print(len(''.join(x for x in a if ord(x) >= 32))) 

Отслеживать
ответ дан 24 дек 2022 в 6:33
4,493 5 5 золотых знаков 12 12 серебряных знаков 37 37 бронзовых знаков

Можно использовать регулярное выражение по которому все whitespace будут удалены

\s - это тоже самое, что [ \f\n\r\t\v] . Т.е. еще и пробелы будут удалены

import re text = 'Denis\nShamra\v\t\r' new_text = re.sub(r'\s', '', text) print(len(new_text)) # 11 

Отслеживать
ответ дан 24 дек 2022 в 6:30
76.9k 6 6 золотых знаков 56 56 серебряных знаков 123 123 бронзовых знака

А мне интересно как избежать удалению пробелов? Вдруг пользователь будет вписывать пробелы? Чтобы нам вернуть строку которую он ввел.

24 дек 2022 в 6:39
@Pain. new_text = re.sub(r'[\f\n\r\t\v]', '', text)
24 дек 2022 в 6:39

from unicodedata import category a = 'Denis\nShamra\v\t\r' print(len(a)) print(len(''.join(filter(lambda x: category(x) != 'Cc', a)))) # 15 # 11 

Отслеживать
ответ дан 24 дек 2022 в 8:46
6,497 2 2 золотых знака 8 8 серебряных знаков 23 23 бронзовых знака

  • python
  • строки
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

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