Как следует из названия, строковые функции Python 3 предназначены для совершения различных операций над строками. В языке программирования Python строковых функций несколько десятков, и в статье мы рассмотрим самые употребляемые, а также ряд специальных, которые не так популярны, зато полезны. Они могут пригодиться вам не только при форматировании, но и при проверке данных.
Список основных строковых функций для форматирования текста
В первую очередь расскажем о функциях форматирования строк, а чтобы обучение шло веселее, в примерах будем использовать тексты, сгенерированные нейросетью «Порфирьевич» (если фраза состоит из двух предложений, то первое в каждом примере написано человеком, а второе — нейросетью, которую обучали на примерах из русской классики).
capitalize()— преобразует первый символ строки в верхний регистр, однако все остальные будут в нижнем:
casefold()— возвращает все элементы строки в нижнем регистре:
center()— с помощью этого метода можно выравнивать строки по центру:
Небольшое пояснение. У функции center() два аргумента: первый (длина строки для центровки) обязательный, второй (заполнитель) — произвольный. В операции выше мы использовали оба. Наша строка состоит из 42 элементов, поэтому оставшиеся 8 были заполнены «звездочками». Если бы второго атрибута не было, на месте звездочек были бы пробелы.
upper()иlower()— преобразуют все символы в верхний и нижний регистр соответственно:
replace()— предназначен для замены части строки другим элементом:
У функции replace() есть и необязательный количественный атрибут, который обозначает максимальное количество замен, если заменяемый элемент встречается в тексте несколько раз. Он указывается на третьем месте:
strip()— удаляет одинаковые символы по краям строки:
Если симметричных значений нет, будет удалено найденное слева или справа, а если указанные символы отсутствуют, вывод останется неизменным:
title()— создает заголовки в соответствии с тем, как это принято в английском, то есть пишет каждое слово с заглавной буквы. Снова похулиганим с Порфирьевичем:
Вы наверняка заметили, что метод title() делает и еще одну вещь: он переводит не начальные буквы в словах в нижний регистр, если они написаны в верхнем.
expandtabs()— меняет табуляцию в тексте, что помогает при форматировании:
Облачные серверы
по всему миру с почасовой оплатой.
Строковые функции для проверки значений
Иногда бывает необходимо подсчитать определенное количество элементов последовательности или проверить, встречается ли в тексте какое-то значение. Эти и другие задачи решают следующие строковые функции.
count()— подсчитывает подстроки (отдельные элементы), встречающиеся в строке. За примером снова обратимся к нашей нейросети:
В качестве подстроки можно указать последовательность символов (будем использовать текст из примера выше):
Добавим, что у функции count() есть и два необязательных числовых атрибута, обозначающих границы поиска указанного элемента:
find()— выполняет поиск указанного в строке значения и возвращает наименьший индекс. Снова используем пример выше:
Этот вывод означает, что первая найденная буква «о» располагается на 13-й позиции в строке (на самом деле на 14-й, потому что счет в Python начинается с нуля). Заметьте, что интерпретатор проигнорировал заглавную букву «О», которая как раз и расположена на нулевой позиции.
Теперь давайте совместим две изученные функции в одном коде:
index()— по работе похож наfind(), однако при отсутствии введенного значения выдаст примерно такую ошибку:
А вот что выдал бы интерпретатор при использовании функции find() в этом случае:
Это отрицательная позиция, то есть значение не найдено.
enumerate()— очень полезная функция, которая не только перебирает элементы списка или кортежа, возвращая их значения, но также возвращает и порядковый номер каждого элемента:
Для вывода значений с их порядковыми номерами мы ввели несколько переменных: number для порядковых номеров, score для значений списка, а str обозначает строку. И вот вывод:
Заметьте, что вторым атрибутом функции enumerate() указано число 1, поскольку иначе Python стал бы считать с нуля.
len()— подсчитывает длину объекта, то есть количество элементов, из которых состоит та или иная последовательность:
Вот так мы посчитали количество элементов в списке из примера выше. А теперь снова повеселимся с Порфирьевичем, напишем строку и подсчитаем число символов в ней:
Специальные строковые функции Python
join()— позволяет конвертировать списки в строки:
print()— дает печатное представление любого объекта в Python:
type()— возвращает тип объекта:
Выяснили, что объект из предыдущего примера — список. Полезно для новичков, ведь они могут поначалу путать, например, списки и кортежи, которые имеют разные функциональные возможности и обрабатываются интерпретатором тоже по-разному.
map()— является довольно эффективной заменой циклаfor, позволяя перебирать элементы какого-либо итерируемого объекта, применяя к каждому из них встроенную функцию. Для примера давайте преобразуем список строковых значений в целочисленные, для чего задействуем функциюint:
Как видим, мы использовали функцию list(), «обернув» в нее map() — это было необходимо, чтобы избежать вот такого вывода:
Это не ошибка, просто получился вывод ID объекта, и программа продолжит работу. Но чтобы получить нужный вывод списка, полезно в таких случаях использовать метод list().
Разверните свой проект на Python
в облаке Timeweb Cloud
477 ₽/мес
657 ₽/мес
Разумеется, мы описали не все строковые функции Python, но уже этот набор поможет вам производить большое число операций со строками и выполнять различные преобразования (программные и математические). Желаем дальнейших успехов!
