Под строками в Python подразумеваются объекты, в состав которых входит последовательность символьных данных. Они являются одним из самых главных компонентов работы с этим языком. Без строк невозможно представить программирования. Ведь любое приложение содержит какой-то текст, и его невозможно вывести без использования строкового типа данных.
Сегодня вы узнаете о том, какие операторы используются для работы со строками. Также узнаете, какие функции применяются для обработки информации, содержащейся в них. Рассмотрим как обычные функции, так и методы, используемые для работы со строками.
В конце концов, вы поймете, каким образом осуществляется доступ к частям строки и разберетесь со способами изменения информации, которая там содержится. Давайте, будем уже приступать к рассмотрению этой темы.
- Операторы, использующиеся для работы со строками
- Оператор сложения строк
- Оператор умножения строк
- Использование оператора принадлежности подстроки в Python
- Функции строк в Python
- Индексация строк
- Срезы строк
- Шаг для среза строки
- Форматирование строки
- Изменение строк
- Методы строк
- Работа с регистром строки
- Поиск и замена подстроки в рамках строки
- Классификация строк
- Выравнивание и отступы
- Преобразование строки в список
- Выводы
Операторы, использующиеся для работы со строками
По отношению к числам используются операторы + и *. Эти же операторы могут использоваться для работы с данными строкового типа. Но выполняют несколько другие операции. Интерпретатор Python автоматически определяет, какое действие необходимо выполнить в зависимости от типа данных операндов.
Оператор сложения строк
Процедура сложения строк называется конкатенацией. Оператор, выполняющий эту функцию, возвращает строку, основанную на других строках таким способом, как показано здесь.
>>> s = 'py' >>> t = 'th' >>> u = 'on' >>> s + t 'pyth' >>> s + t + u 'python' >>> print('Привет, ' + 'Мир!') Go team!!!
Оператор умножения строк
Умножение строк – это процедура создания нескольких копий одного и того же текста. Если s – это строка, а n – целочисленное значение, то любым из перечисленных ниже выражений можно вернуть строку, которая состоит из n объединенных копий s.
Давайте теперь приведем примеры для наглядности.
>>> s = 'py.' >>> s * 4 'py.py.py.py.' >>> 4 * s 'py.py.py.py.'
Обратите внимание: в качестве множителя должно выступать целочисленное значение, положительное по модальности. Если использовать ноль или отрицательное значение, то в качестве результата будет выступать пустая строка.
>>> 'py' * -6 ''
То есть, если умножить строку на минусовое число, то можно очистить ее. Конечно, есть и другие способы убрать все содержимое строки. Например, присвоить ей пустое значение или пробел. Но и этот метод работает.
Использование оператора принадлежности подстроки в Python
Для проверки, является ли подстрока частью большой строки, используется оператор in. Если оказывается, что является составляющей, возвращается результат True. Если нет, то возвращается False.
>>> s = 'Python' >>> s in 'I love Python.' True >>> s in 'I love Java.' False
По аналогии, есть противоположный оператор, который работает наоборот.
>>> 'z' not in 'abc' True >>> 'z' not in 'xyz' False
Функции строк в Python
Обработка строчных данных осуществляется не только операторами, но и функциями. Рассмотрим некоторые из них:
- ord(c). Позволяет получить число, соответствующее определенному символу в ASCII или Unicode.
- chr(n). Противоположная предыдущей функция, которая переводит число в символ.
- len(s). Определяет длину строки.
- str(obj). Представляет объект в строчном формате. Например, превращает число в строку.
Индексация строк
Любой упорядоченный набор данных в языках программирования имеет индекс, предназначенный для получения этого элемента и выполнения операций с ним. Строки – не исключение. Все символы в этом объекте имеют определенный индекс, по которому можно получить определенную букву или несколько символов, которые в нее входят.
Учтите, что индексация строк начинается с нуля. То есть, первый символ строки – 0.
Индекс указывается в квадратных скобках. Например, s[1].
Срезы строк
Возможно также получать определенное количество символов строки с помощью срезов. Синтаксис следующий:
s[m:n]
Здесь первый аргумент – это первое число последовательности, а второй – второе. Важно: последнее число не включает эту позицию. То есть, если написать в качестве второго значения 5, то фактически будет включен в срез только четвертый элемент.
В срезе индексы также начинаются с нуля. Следовательно, если надо начать срез с начала, используется в качестве значения m 0.
Также можно пропускать один из элементов, задавая срез от начала или до конца строки.
[:n], [n:].
Шаг для среза строки
Python также предоставляет возможность задавать шаг для среза строки. Для этого добавляется третий индекс. Шаг задает количество знаков, которые интерпретатор пропускает при переборе значений.
Так, для строки ‘python’ начало среза 0:6:2 начинается с первого символа, а потом значения перебираются через один, пока не будет достигнут элемент со вторым индексом.
Форматирование строки
Python 3.6 предоставляет возможность форматирования строк. Называется эта функция f-string. Чтобы использовать эту функцию, необходимо указывать имя переменной непосредственно в f-строковом литерале, и имя будет заменено на подходящее значение.
Например, вот так.
>>> n = 20 >>> m = 25 >>> prod = n * m >>> print(f'Произведение {n} на {m} равно {prod}') Произведение 20 на 25 равно 500
Обратите внимание, что мы заключили названия переменных в фигурные скобки внутри объекта. А интерпретатор уже автоматически понял, что это значит.
Изменение строк
Изменять содержимое строк по умолчанию невозможно. Тем не менее, это не означает того, что это невозможно сделать. Просто необходимо создать копию строки с нужными изменениями, а потом присвоить получившийся результат изначальной строке.
Также можно воспользоваться методом string.replace(x,y).
>>> s = 'python' >>> s = s.replace('h', 't') >>> s 'pytton'
Как мы видим, буква h была заменена на букву t.
Методы строк
Методы – это разновидность функции, которая вызывается из объекта. Точно так же, как и функция, метод используется для выполнения конкретной задачи. Но его вызов осуществляется исключительно совместно с конкретным объектом.
Строки – это полноценные объекты, которые также могут использовать методы для выполнения тех или иных действий.
Давайте более подробно рассмотрим некоторые категории методов в Python.
Работа с регистром строки
Если необходимо выполнить преобразование регистра строки, используются методы этой категории:
- string.capitalize() – делает строку написанной с большой буквы.
- string.lower() – убирает все большие буквы в строке.
- string.swapcase() – делает так, чтобы строчные буквы стали прописными, и наоборот.
- string.title(). Делает так, чтобы каждое слово в строке начиналось с заглавной буквы.
- string.upper(). Возвращает копию s со всеми буквенными символами в верхнем регистре.
Использоваться эти методы могут для разных целей. Например, если пользователь вводит строку с маленькой буквы, программа это определяет и сохраняет эти данные в базу уже в правильном регистре.
Поиск и замена подстроки в рамках строки
Методы этой группы осуществляют поиск нужного вхождения в большой строке. Аргументы, <start> и <end> здесь являются необязательными.
- string.count(<sub>, <start>, <end>). Определяет, сколько раз искомое значение встречается в строке.
- string.endswith(<suffix>, <start>, <end>). Проверяет окончание на предмет соответствия содержимому первого аргумента.
- string.find(<sub>, <start>, <end>). Используется для поиска вхождения в строке.
Есть также другие методы.
Классификация строк
Методы, содержащиеся в этой группе, относят строку к той или иной группе в зависимости от того, сколько символов в ней содержится:
- string.isalnum(). Проверяет строку на то, есть в ней буквы или цифры.
- string.isalpha(). Проверяет строку на факт того, что она содержит только буквы.
- string.isdigit(). Проверяет на предмет содержания исключительно цифр.
- string.isidentifier(). Проверяет, является ли содержимое строки разрешенным идентификатором Python.
Кроме этих, есть ряд других методов, которые также довольно часто используются.
Выравнивание и отступы
Выравнивание и отступы – распространенная составляющая работы со строками в Python. Рассмотрим некоторые из методов, предназначенных для работы с выравниванием и отступами.
- string.center(<width>, <fill>). Осуществляет выравнивание строки по центру.
- string.expandtabs(tabsize=8). Превращает табуляцию в пробел.
- string.ljust(<width>, <fill>). Выполняет выравнивание по левому краю строки в поле.
- string.lstrip(<chars>). Позволяет получить строку без отступов слева.
Эти методы – одни из самых распространенных. С их помощью можно выполнять основные операции.
Преобразование строки в список
Поскольку и строка, и список, являются итерируемыми объектами, то их можно взаимно конвертировать друг в друга. Это следующие методы.
- string.join(<iterable>) объединяет список в строку.
- string.partition(<sep>) выполняет разделение строки с помощью специального разделителя.
- string.rsplit(sep=None, maxsplit=1). Превращает строку в список.
- string.splitlines(<keepends>) превращает текст в список строк.
Эти методы используются во многих программах, выполняющих быструю обработку данных.
Выводы
Сегодня мы детально рассмотрели различные действия, которые можно выполнять со строками. Это, конечно, не все. В арсенале языка находится еще много интересных методов, которые могут использоваться для работы со строками. Но даже этих будет новичку предостаточно. Ведь их очень много, и можно просто перегрузить вас.
Каждый из этих методов заслуживает отдельного рассмотрения и примеров, которые раскрывают тонкости работы с ними. Обязательно рассмотрим их со временем.