Строка — это последовательность символов. Встроенный строковый класс в Python представляет собой строки, основанные на наборе символов Юникод — международного стандарта кодирования символов. Строки работают с базовыми операциями Python и некоторыми дополнительными эксклюзивными методами.
В этом материале изучим самые используемые. Здесь важно отметить, что все строковые методы всегда возвращают новые значения, а не меняют оригинальную строку.
1. Выравнивание строки по центру
Метод center()
выравнивает строку по центру. Выравнивание происходит за счет определенного символа (по умолчанию — это пробел).
Синтаксис
str.center(length, fillchar), где:
- length — длина строки (обязательно);
- fillchar — символ, который определяет выравнивание (необязательно);
Пример кода
sentence = 'алгоритм'
sentence.center(14,'-')
'---алгоритм---'
2. Сколько раз символ встречается в строке
Метод count()
возвращает, сколько раз конкретное значение встречалось в строке.
Синтаксис
str.count(value, start, end), где:
- value — подстрока, которую нужно искать в строке (обязательно);
- start — начальный индекс строки, откуда нужно начинать поиск (необязательно);
- end — конечный индекс строки, где поиск значения должен завершиться (необязательно);
Пример кода
sentence = 'Она продает ракушки на берегу моря. Товары, которые она продает, безусловно, ракушки.'
sentence.count('ракушки')
sentence.count('ракушки',9,25)
2
1
3. Поиск подстроки в строке
Метод find()
возвращает наименьший индекс позиции, где указанная подстрока встречается в строке. Если она не найдена, возвращает -1
.
Синтаксис
str.find(value, start, end), где:
- value — подстрока, которую нужно искать в строке (обязательно);
- start — начальный индекс строки, откуда нужно начинать поиск (необязательно);
- end — конечный индекс строки, где поиск значения должен завершиться (необязательно);
Типы
rfind()
— методrfind()
похож наfind()
, но он возвращает самый большой индекс.
Пример кода
sentence = 'Она продает ракушки на берегу моря. Товары, которые она продает, безусловно, ракушки.'
sentence.find('ракушки')
sentence.find('ракушки',0,9)
sentence.find('р',5,10)
sentence.rfind('ракушки')
10
-1
8
69
4. Зеркальное изменение регистра строки
Метод swapcase()
возвращает копию строки, где все буквы в нижнем регистре написаны в верхнем и наоборот.
Синтаксис
string.swapcase()
Пример кода
sentence = 'Queue - это еще одна ФУНДАМЕНТАЛЬНАЯ СТРуктура данных'
sentence.swapcase()
'qUEUE - ЭТО ЕЩЕ ОДНА фундаментальная стрУКТУРА ДАННЫХ'
5. Поиск в начале или в конце строки
Метод startswith()
возвращает True
, если строка начинается с заданного значения; в противном случае — False
.
Метод endswith()
возвращает False
, если строка заканчивается конкретным значением; в противном случае — False
.
Синтаксис
string.startswith(value, start, end)
string.endsswith(value, start, end)
- value — это значение, которое нужно искать в строке (обязательно);
- start — начальный индекс строки, откуда нужно начинать поиск (необязательно);
- end — конечный индекс строки, где поиск значения должен завершиться (необязательно);
Пример кода
#string.startswith()
sentence = 'Бинарный поиск - классический рекурсивный алгоритм'
sentence.startswith("Бинарный")
sentence.startswith("поиск",7,20)
True
True
#string.endswith()
sentence.endswith('классический')
False
6. Превращение строки в список
Метод split()
возвращает список из слов строки, где разделителем по умолчанию выступает пробел.
Синтаксис
string.split(sep, maxsplit)
- sep — разделитель, которые используется для разделения строки. Если ничего не указано, то им выступает пробел (необязательно);
- maxsplit() — обозначает количество разделений. Значение по умолчанию (-1) означает «во всех случаях» (необязательно);
Типы
rsplit()
— разбивает строку, начиная с правой стороны.
Пример кода
#string.split()
fruits = 'яблоки, манго, бананы, виноград'
fruits.split()
fruits.split(",",maxsplit = 2)
['яблоки,', 'манго,', 'бананы,', 'виноград']
['яблоки', ' манго', ' бананы, виноград']
#string.rsplit()
fruits.rsplit(",",maxsplit = 1)
['яблоки, манго, бананы', ' виноград']
7. Изменение регистра строки
7.1. Первый символ в верхний регистр
Метод capitalize()
делает заглавным только первый символ строки.
Синтаксис
string.capitalize()
"сан-Франциско".capitalize()
'Сан-франциско'
7.2. Все символы в верхний регистр
Метод upper()
делает все символы строки в верхнем регистре.
Синтаксис
string.upper()
"сан-Франциско".upper()
'САН-ФРАНЦИСКО'
7.3. Все первые буквы слов в верхний регистр
Метод title()
делает заглавными все первые буквы в словах заданной строки.
Синтаксис
string.title()
"сан-Франциско".title()
'Сан-Франциско'
8. Выравнивание строк по левому или правому краю
Метод ljust()
возвращает выровненную по левому краю строку с помощью заданного символа (пробел по умолчанию). Метод rjust()
выравнивает строку по правому краю.
Синтаксис
string.rjust/ljust(length, character)
- length — длина строки, которую нужно вернуть (обязательно);
- character — символ, используемый для заполнения пустого пространства, пробел по умолчанию (необязательно);
Пример кода
#str.rjust
text = 'Бинарный поиск — '
print(text.rjust(25),"классический рекурсивный алгоритм")
Бинарный поиск — классический рекурсивный алгоритм
#str.ljust
text = 'Бинарный поиск — '
print(text.ljust(25),"классический рекурсивный алгоритм")
Бинарный поиск — классический рекурсивный алгоритм
9. Удаление пробелов вокруг строки
Метод strip()
возвращает копию строки, в которой удалены определенные символы в начале и конце строки. Пробел — символ по умолчанию.
Синтаксис
string.strip(character)
Типы
rstrip()
— убирает символы с правой части строки.lstrip()
— удаляет символы с левой стороны строки.
Пример
#str.strip
string = '#.......Раздел 3.2.1 Вопрос #32......'
string.strip('.#!')
'Раздел 3.2.1 Вопрос #32'
#str.rstrip
string.rstrip('.#!')
string.lstrip('.#!')
'#.......Раздел 3.2.1 Вопрос #32'
'Раздел 3.2.1 Вопрос #32......'
10. Добавление нулей в начале строки
Метод zfill()
добавляет нули (0) в начале строки. Длина возвращаемой строки зависит от указанной ширины.
Синтаксис
string.zfill(width)
- width — определяет длину возвращаемой строки. Нули не добавляются, если параметр ширины меньше длины оригинальной строки.
Пример
'7'.zfill(3)
'-21'.zfill(5)
'Python'.zfill(10)
'Python'.zfill(3)
'007'
'-0021'
'0000Python'
'Python'
Выводы
Это лишь некоторые полезные встроенные в Python строковые методы. Есть и другие, не менее важные. Статья Строки в python 3: методы, функции, форматирование — отличный ресурс для углубления во все подробности.