- Что такое строки в Python
- Конкатенация (объединение) строк
- Дублирование строки
- Определение длины строки
- Индексация строк в Python
- Строки в Python и методы работы с ними
- Методы для изменения регистра строки
- Методы поиска подстроки в строке
- Методы проверки начала (окончания) строк
- Методы проверки строк – строки в Python и методы работы
Строки в Python и методы работы со строками – одна из самых важных тем, а этот тип данных достаточно часто используется, и не только в Питоне, но и в программировании вцелом.
Что такое строки в Python
Итак, строки в Python – это все, что мы берем в кавычки, при чем для Питона абсолютно без разницы какие это кавычки, двойные ” “, или одинарные ‘ ‘.
Строки – это итерируемые объекты, а также это неизменяемая последовательность символов, то есть строка (str) являетсянеизменяемым (immutable) типом данных.
Строковый литерал — это некоторая последовательность символов, заключенная в одинарные или двойные кавычки.
myStr1="hello" myStr2='hello'
Все пробелы и знаки табуляции сохранятся в строке так, как есть.
myStr3="What’s your name?"
Также можно указывать «многострочные» строковые литералы, используя использованием тройных кавычек (“”” или ‘ ‘ ‘). В пределах тройных кавычек в свою очередь можно использовать двойные или тройные кавычки.
Например:
myStr4='''This is a multi-line string (text). This is the first line of text. This is the second line of text. This is the third line of text with 'quotes' '''
Конкатенация (объединение) строк
Если необходимо объединить две (или более) строк в одну (новую, т.к. помним, что строки неизменяемы), то это можно выполнить с помощью символа «+», расположенного между объединяемыми объектами строк.
str1 = "Hello," str2 = "Admin" print(str1 + str2) str3 = str1 + str2 print(str3)
Дублирование строки
Если нам необходимо повторить строку заданное число раз (продублировать ее), то для этого воспользуемся символом «*» (оператор умножения), в качестве одного операнда указав строку, а второй — это количество повторений. Как и в случае конкатенации строк, результат — это новый объект.
myStr="Hello" print(myStr*5) # HelloHelloHelloHelloHello myBigStr=myStr*5 print(myBigStr) # HelloHelloHelloHelloHello
Определение длины строки
Для того, что определить какой длины строка, или сколько в ней символов необходимо использовать стандаотную функцию len() и ее аргументом будет именно та строка, длину которой вы хотите узнать:
myStr="Hello" print(len(myStr)) # 5
Индексация строк в Python
Для работы со строками в Python предусмотрено большое число встроенных функций и методов строк и прежде чем переходить к изучению этих разнообразных методов, необходимо рассмотреть особенности работы со строками, а именно индексацию строк.
Так как строка представляет собой упорядоченный набор символов (является последовательностью), то у каждого элемента строки (символа строки) есть свой уникальный индекс (порядковый номер). Нумерация индексов начинается с нуля. Индекс второго элемента строки — 1 и так далее. Индекс последнего символа вычисляется как длина строки минус один. Распределение индексов элементов строки «foobar» происходит так:
Для доступа к отдельным символам строки нужно указать имя строки, за которым следует индекс нужного символа в квадратных скобках [].
myStr="foobar" print(myStr[0]) #'f' print(myStr[1]) #'o' print(len(myStr)-1) #'r'
Строки в Python также имеют отрицательную индексацию, можно просто повторить, что отсчет идет от конца строки, т.е. последний элемент имеет индекс, равный -1, предпоследний — индекс, равный -2 и т.д.
myStr="foobar" print(myStr[-1]) #r print(myStr[-2]) #a
Строки в Python и методы работы с ними
Все методы строк и не только, но и в целом все методы, вызываются через точку, т.е. сначала прописываем объект, или имя переменной, потом ставим точку и имя метода:
my_list.count(n) my_string.title()
Методы для изменения регистра строки
Метод capitalize() переводит первый символ строки в верхний регистр, остальные — в нижний, возвращает — преобразованную копию оригинальной строки (при этом оригинальная строка в результате работы метода не изменится);
myStr="python was created in the late 1980's by Guido van Rossum." print(myStr.capitalize()) # Python was created in the late 1980's by guido van rossum.
Метод lower() переводит все буквенные символы оригинальной строки в нижний регистр, возвращаемый результат — преобразованная копия строки;
myStr="python was created in the late 1980's by Guido van Rossum." print(myStr.lower()) #python was created in the late 1980's by guido van rossum.
Метод upper() преобразует все буквенные символы строки в верхний регистр, возвращаемый результат — преобразованная копия строки.
myStr="python was created in the late 1980's by Guido van Rossum." print(myStr.upper()) #PYTHON WAS CREATED IN THE LATE 1980'S BY GUIDO VAN ROSSUM.
Метод title() преобразует первые буквы каждого слова в строке в верхний регистр (а остальные буквы слов переводит в нижний регистр), возвращаемый результат — преобразованная копия строки.
myStr="python was created in the late 1980's by Guido van Rossum." print(myStr.title()) #Python Was Created In The Lat 1980'S By Guido Van Rossum.
Метод swapcase() преобразует буквенные символы строки, меняя их регистр на противоположный, возвращаемый результат — преобразованная копия строки;
myStr="python was created in the late 1980's by Guido van Rossum." print(myStr.swapcase()) #PYTHON WAS CREATED IN THE LATE 1980'S BY gUIDO VAN rOSSUM.
Методы поиска подстроки в строке
Эти методы предоставляют различные способы поиска в целевой строке указанной подстроки (фрагмента). Каждый метод в этой группе, кроме обязательного аргумента подстроки (фрагмента оригинальной строки, который ищется) включает два необязательных аргумента (startIndex и endIndex) для указания диапазона поиска.
При использовании этих параметров поиск проходит не во всей строке, а в ее части, начиная с индекса startIndex до индекса endIndex-1 включительно. Если аргумент startIndex указан, а endIndex — нет, то поиск в строке проходит от индекса startIndex до конца строки.
Метод count(elemen, startIndex, endIndex) — определяет количество вхождений фрагмента elemen в строку (или в ее часть, если задать диапазона поиска с индекса startIndex по индекс endIndex;
myStr = "Python was created in the late 1980's by Guido van Rossum. Python- cool!" print(myStr.count('P')) # 2 раза встречается буква "P" print(myStr.count('Python')) # 2 раза встречается слово Python print(myStr.count('Python',20,65)) # 1 раз встречается слово Python между индексами 20 и 65
Метод find(element, startIndex, endIndex) — используется для поиска в строке нужного фрагмента element, возвращаемый результат — индекс начала первого вхождения фрагмента element в строку или -1 в случае, если фрагмент element отсутвует в этой строке. Можно также ограничить диапазон поиска с помощью параметров startIndex и endIndex.
myStr="Python was created in the late 1980's by Guido van Rossum. Python- cool!" print(myStr.find('a')) # 8 - первый раз буква встречается под индексом 8 print(myStr.find('a',2,5)) # -1 - буква "a" не встречается в диапазоне индексов от 2 до 5
Метод rfind(element, startIndex, endIndex) – абсолютно единтичен методу find(), с единственной разницей: выполняется перебор строки с конца, а не с начала.
myStr="Python was created in the late 1980's by Guido van Rossum. Python- cool!" print(myStr.rfind('a')) #48 - при переборе строки справа на лево, буква "a" впервые встречается под индексом 48 print(myStr.rfind('R',50,55)) #51 "R" - встречается в диапазоне индексов 50-55 print(myStr.rfind('R',0,10)) #-1 "R" - не встречается в диапазоне индексов 0-10
Метод index(pattern, startIndex, endIndex) — работа метода аналогична методу .find(), отличие — в вызове исключения ValueError в случае, когда фрагмент patternне найден.
myStr="Python was created in the late 1980's by Guido van Rossum. Python- cool!" print(myStr.index('a')) #8 индекс первой буквы "a" print(myStr.index('a',2,5)) #ValueError - не найдено
Метод rindex(pattern, startIndex, endIndex) работа метода аналогична методу .rfind(), отличие — в вызове исключения ValueError в случае, когда фрагмент pattern не найден.
print(myStr.rfind('a')) #48 print(myStr.rfind('a',2,20)) #14 print(myStr.rindex('a')) #48 print(myStr.rindex('a',2,6)) #ValueError - подстрока не найдена
Методы проверки начала (окончания) строк
Методы данной группы возвращают True в случае, когда оригинальная строка удовлетворяет условию, False – иначе. Для ограничения диапазона проверки можно использовать параметры startIndex и endIndex.
Метод startwith(pattern, startIndex, endIndex) — определяет, начинается ли строка с указанного фрагмента pattern
myStr="Python was created in the late 1980's by Guido van Rossum. Python- cool!" print(myStr.startswith('P')) #True print(myStr.startswith('p')) #False print(myStr.startswith('w',7)) #True
Метод endswith(pattern, startIndex, endIndex) — определяет, заканчивается ли строка указанным фрагментом pattern.
myStr="Python was created in the late 1980's by Guido van Rossum. Python- cool!" print(myStr.endswith('!')) #True print(myStr.endswith('n',2,6)) #True
Методы проверки строк – строки в Python и методы работы
Строки в Python и методы работы с ними достаточно специфичны, но в то же время позволяют решать много задач. Следующие методы возвращают значение True – если строка содержит нужные символы, False – иначе)
Метод isalnum() – проверяет, состоит ли строка только из буквенных и цифровых символов.
myStr="Python2021" print(myStr.isalnum()) #True
Метод isalpha() – проверяет, состоит ли строка только из буквенных символов.
myStr="Python2021" print(myStr.isalpha()) #False myStr="Python" print(myStr.isalpha()) #True
Метод isdigit() – проверяет, состоит ли строка только из цифровых символов (используется для проверки, является ли строка числом).
myStr="2021Y" print(myStr.isdigit()) #False
Метод islower() – проверяет, находятся ли все буквенные символы строки в нижнем регистре (символы строки , которые не являются буквой алфавита — игнорируются данной проверкой).
myStr1="it was created in the late 1980's" print(myStr1.islower()) #True
Метод isspace() – проверяет, что в состав строки входят только пробельные символы, к которым относятся символы пробела ‘ ‘, табуляции ‘\t’ и перехода на новую строку ‘\n’.
myStr2=" \t \n \t\t" print(myStr2.isspace()) #True
Метод istitle() – проверяет, начинается ли каждое слово строки с символа в верхнем регистре.
myName= "Guido van Rossum" print(myName.istitle()) #False myName= "Guido Van Rossum" print(myName.istitle()) #True
Метод isupper() – определяет, находятся ли все буквенные символы строки в верхнем регистре.
myName2= "GUIDO VAN ROSSUM" print(myName2.isupper()) #True
Метод islower() – определяет, находятся ли все буквенныесимволы строки в нижнем регистре.
myName2= "guido van rossum" print(myName2.isupper()) #True
Итог:
- Узнали что такое строки в Python;
- Рассмотрели как индексируются строки в Python;
- Разобрали что такое строки в Python и методы работы с ними.
На этом тема строки в Python и методы работы с ними не совсем заканчивается, стоит обратить особое внимание на форматирование строк в Python 3, а более подробно о работе со строками вы можете ознакомиться в официальной документации.