- Строки. Функции и методы строк
- Базовые операции
- Таблица «Функции и методы строк»
- Четыре способа найти длину строки в Python
- Определяем длину строки в Python: способ № 1
- Ищем длину строки в «Питоне»: способ № 2
- Поиск длины строки в Python: способ № 3
- Находим длину строки в Python: способ № 4
- Строки в Python и методы работы с ними
- Склеивание и разделение строк
- Форматирование строк в Python
- Поиск в строках
- Замена в строках
- Вывод каждого символа в строке
- Узнаем длину строки
- Преобразование строки в число
- Изменение регистра строк в Python
- Удаление лишних пробелов из строк
- Итог
Строки. Функции и методы строк
Итак, о работе со строками мы немного поговорили, теперь поговорим о функциях и методах строк.
Я постарался собрать здесь все строковые методы и функции, но если я что-то забыл — поправляйте.
Базовые операции
При вызове методов необходимо помнить, что строки в Python относятся к категории неизменяемых последовательностей, то есть все функции и методы могут лишь создавать новую строку.
: Поэтому все строковые методы возвращают новую строку, которую потом следует присвоить переменной.
Таблица «Функции и методы строк»
Функция или метод | Назначение |
---|---|
S = ‘str’; S = «str»; S = »’str»’; S = «»»str»»» | Литералы строк |
S = «s\np\ta\nbbb» | Экранированные последовательности |
S = r»C:\temp\new» | Неформатированные строки (подавляют экранирование) |
S = b»byte» | Строка байтов |
S1 + S2 | Конкатенация (сложение строк) |
S1 * 3 | Повторение строки |
S[i] | Обращение по индексу |
S[i:j:step] | Извлечение среза |
len(S) | Длина строки |
S.find(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер первого вхождения или -1 |
S.rfind(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер последнего вхождения или -1 |
S.index(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError |
S.rindex(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError |
S.replace(шаблон, замена[, maxcount]) | Замена шаблона на замену. maxcount ограничивает количество замен |
S.split(символ) | Разбиение строки по разделителю |
S.isdigit() | Состоит ли строка из цифр |
S.isalpha() | Состоит ли строка из букв |
S.isalnum() | Состоит ли строка из цифр или букв |
S.islower() | Состоит ли строка из символов в нижнем регистре |
S.isupper() | Состоит ли строка из символов в верхнем регистре |
S.isspace() | Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы (‘\f’), «новая строка» (‘\n’), «перевод каретки» (‘\r’), «горизонтальная табуляция» (‘\t’) и «вертикальная табуляция» (‘\v’)) |
S.istitle() | Начинаются ли слова в строке с заглавной буквы |
S.upper() | Преобразование строки к верхнему регистру |
S.lower() | Преобразование строки к нижнему регистру |
S.startswith(str) | Начинается ли строка S с шаблона str |
S.endswith(str) | Заканчивается ли строка S шаблоном str |
S.join(список) | Сборка строки из списка с разделителем S |
ord(символ) | Символ в его код ASCII |
chr(число) | Код ASCII в символ |
S.capitalize() | Переводит первый символ строки в верхний регистр, а все остальные в нижний |
S.center(width, [fill]) | Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию) |
S.count(str, [start],[end]) | Возвращает количество непересекающихся вхождений подстроки в диапазоне [начало, конец] (0 и длина строки по умолчанию) |
S.expandtabs([tabsize]) | Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам |
S.lstrip([chars]) | Удаление пробельных символов в начале строки |
S.rstrip([chars]) | Удаление пробельных символов в конце строки |
S.strip([chars]) | Удаление пробельных символов в начале и в конце строки |
S.partition(шаблон) | Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки |
S.rpartition(sep) | Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку |
S.swapcase() | Переводит символы нижнего регистра в верхний, а верхнего – в нижний |
S.title() | Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний |
S.zfill(width) | Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями |
S.ljust(width, fillchar=» «) | Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar |
S.rjust(width, fillchar=» «) | Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar |
S.format(*args, **kwargs) | Форматирование строки |
Для вставки кода на Python в комментарий заключайте его в теги
Четыре способа найти длину строки в Python
В некоторых случаях при работе со строками в Python нам необходимо определить длину строки. Сделать это можно несколькими способами, а какими — мы сейчас и узнаем.
Итак, в языке программирования Python строки относят к категории неизменяемых последовательностей, что необходимо помнить при вызове методов и функций. Теперь давайте представим, что у нас есть строка, и нам требуется найти её длину:
Сделать это можно несколькими способами.
Определяем длину строки в 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 гораздо больше? Записывайтесь на наш курс для продвинутых разработчиков:
Строки в Python и методы работы с ними
В одной из прошлых статей я разбирал строки в JavaScript. Теперь пришло время поговорить о строках в языке программирования Python.
Начнем с теории. Строка – это последовательность символов произвольной длины. Также строки являются объектами класса str, и если мы захотим получить не строку, а число, то можем использовать функцию приведения.
Склеивание и разделение строк
Самый простой способ склеить строки в Python – это сложить их с помощью знака «+». Рассмотрим на примере:
str = "a"+"b" print(str) # Выведет "ab"Но такой способ не всегда будет нам подходить. Рассмотрим метод join():
str = ["a", "b", "c"] print("".join(str)) # Выведет "abc"Перед .join() мы указываем разделитель строк, а в скобках сам их массив.
Для того чтобы разделить строки, используем обратный метод – split(). Тут в скобках указываем набор символов, по которым будет идти разделение, а перед методом не забываем указать имя строки, а после нее поставить точку. Рассмотрим на примере:
str = "a,b,c" print(str.split(",")) # Выведет ['a', 'b', 'c']Существует и другой способ разделения строк, он называется срез. Срез str[x:y] позволит нам получить строку от символа x до y. При этом необязательно указывать оба параметра, ведь в таком случае срез произойдет от начала или до самого конца строки.
str = "Строки в Python и методы работы с ними" print(str[9:15]) # Выведет "Python"str = "Строки в Python и методы работы с ними" print(str[:15]) # Выведет "Строки в Python"str = "Строки в Python и методы работы с ними" print(str[18:]) # Выведет "методы работы с ними"Также можно срезать каждый энный символ при помощи двойного двоеточия:
str = "123456789" print(str[::2]) # Выведет "13579"Форматирование строк в Python
Для подстановки в строку любой переменной, которая может являться результатом работы основной части кода, нам понадобятся f-строки. Они появились в Python 3.6, поэтому я рекомендую использовать только свежие версии этого языка программирования. Рассмотрим на примере работу с f-строками:
num = 2*10 num2 = 100 str = f"Первое число: . Второе число: " print(str) # Выведет "Первое число: 20. Второе число: 100"Поиск в строках
Если нам нужно найти набор символов в начале или в конце данной строки, то на помощь приходят два быстрых метода.
Первый метод – startswith(). Он позволяет искать набор символов в начале строки. Рассмотрим на примере:
str = "Строки в Python и методы работы с ними" print(str.startswith("Строки")) #Выведет TrueВторой метод – endswith(). Он позволяет искать набор символов в конце строки. Рассмотрим на примере:
str = ". я разбирал строки в JavaScript" print(str.endswith("JavaScript")) #Выведет TrueА если нам нужно найти набор символов в произвольном месте строки, то используем метод find(). Рассмотрим на примере:
str = "Строки в Python и методы работы с ними" print(str.find("Python")) #Выведет 9В данном случае скрипт нашел набор символов в строке и вывел индекс начала его вхождения в ней.
str = "Строки в Python и методы работы с ними" print(str.find("JavaScript")) #Выведет -1А в этом случае скрипт не нашел набор символов в строке и вывел «-1».
Замена в строках
Для замены одного набора символов на другой в строке используют метод replace(). Рассмотрим данный метод на примере:
str = "Строки в Python и методы работы с ними" print(str.replace("Python", "JavaScript")) #Выведет "JavaScript"Вывод каждого символа в строке
Если нам нужно получить и обработать каждый символ в строке отдельно, то мы можем использовать цикл for. Рассмотрим на примере:
str = "123" for i in str: print(i) #Выведет "1" "2" "3"Узнаем длину строки
Для того чтобы получить длину строки, используем метод len():
str = "123" print(len(str)) # Выведет 3Преобразование строки в число
Если мы имеем строку, состоящую из набора цифр, то мы смело можем преобразовать ее в число, используя функцию приведения int(). Рассмотрим на примере:
str = "123" print(int(str)) # Выведет 123Изменение регистра строк в Python
Для того чтобы все буквы в строке были заглавными, используем метод upper():
str = "Строки в Python и методы работы с ними" print(str.upper()) # Выведет "СТРОКИ В PYTHON И МЕТОДЫ РАБОТЫ С НИМИ"И метод lower() для строчных букв:
str = "СТРОКИ В PYTHON И МЕТОДЫ РАБОТЫ С НИМИ" print(str.upper()) # Выведет "строки в python и методы работы с ними"Чтобы первая буква в строке стала заглавной, следует использовать метод capitalize():
str = "строки в python и методы работы с ними" print(str.capitalize()) # Выведет "Строки в python и методы работы с ними"Удаление лишних пробелов из строк
Метод strip() удаляет пробельные символы в начале и в конце строки. lstrip() и rstrip() делают то же самое, но в определенных местах: первый метод в начале строки, а второй – в ее конце.
Итог
Мы разобрали основные методы работы со строками в Python. Предлагайте идеи для статей и удачи в ваших начинаниях!