Привет, друзья! Сегодня у нас с вами на рабочем столе урок Python: работа со строками. Сейчас мы изучим некоторые приёмы для работы с ними. Не секрет, что множество программ созданы только для того, чтобы работать с текстами. Преобразовывать, изменять, анализировать. Взять тот же Chat GPT, например. Забегая вперёд, отмечу, что любой, даже очень большой текст можно разбить по предложениям. Или абзацам. И получить на выходе массив (или, лучше сказать, список) строк. Ну, теперь к делу.

Python: работа со строками — замена

Прежде всего, немного терминологии. Вам часто будет встречаться слово «подстрока». Что это такое? Это последовательность символов, которые содержатся в строке. Это может быть слово или словосочетание. А может, даже и целое предложение.

Если это не первый урок, который вы проводите со мной, то, наверное, знаете, как я не люблю примеров, оторванных от реальности. Поэтому представьте себе довольно заурядную ситуацию. Предположим, вы администрируете какой-нибудь чат или форум. Где ругаться, используя бранные слова, само собой, не допускается. Но одних лишь предупреждений пользователям… недостаточно. Чтобы разрешить эту ситуацию, напишем скрипт, который будет менять подстроку, содержащую ругательства на изящные три звездочки: ***

Мы будем использовать функцию replace. Вот, какой у неё синтаксис:

Допустим, мы обнаружили хулигана, который написал ни в чём не виноватому мальчику Ване, что тот редиска. Мы не хотим, чтобы это видели остальные, поэтому слово «редиска» заменим звёздочками.

Получение части строки

Из строки можно сделать срез, указав начальную и конечную позицию подстроки через двоеточие, в квадратных скобках после имени переменной. При этом позиция начинается с нуля. Опять же, приведу пример из жизни. Часто бывает, что из соображений безопасности (например, при восстановлении пароля), пользователю нужно напомнить его email. Но только не весь целиком, а как бы… намекнуть. Для этого на практике часть символов заменяется точками или звездочками. Функция replace здесь не поможет, потому как мы не знаем, что именно нам надо менять. А вот взять первые и последние три символа, оставив между ними звёздочки — можно.

Работа с частью строки бывает веьсма полезной, когда в списках нужно отыскать определённую информацию. Вот ещё один пример. Допустим, есть неупорядоченный список криво (!) выгруженной базы. В этом списке вперемешку и имена, и даты рождения, и адреса электронной почты, и адреса страниц в соцсетях. А перед нами задача — «выцепить» только последние, чтобы потом произвести организованную рассылку сообщений, например. Решение — перебрать при помощи цикла for каждую строку из списка и вывести на экран те, что начинаются с «https:».

Python: работа со строками — поиск

Чтобы найти подстроку в строке, нужно использовать функцию find. Так, если искомая подстрока обнаружится в строке, то в переменную n попадёт её позиция в поиске. В противном случае, значение n будет равняться -1. Вот синтаксис этой функции:

Где можно применить такую функцию? Например, при проверке (валидации) введённого адреса электронной почты. Примитивной такой валидации 🙂 В любом адресе электронной почты должен присутствовать символ @. Его-то мы и будем искать.

Разделяй и властвуй объединяй

Строки можно как разбивать на части (функция split()), так и объединять (функция join()). Возьмём пример выше и пофантазируем. Программа не будет спрашивать пользователя ввести адрес, она будет работать с уже существующей строкой. Посмотрите на скрипт с комментариями:

Функция join() обратна функции split(). Несложно было догадаться, правда? Допустим, у нас есть строковая переменная, которую нужно добавить к каждому элементу из списка. Как это сделать? Взгляните на скрипт:

Python: работа со строками — вставка переменной

На практике очень часто требуется вставить переменную именно в середину строки. При этом сами переменные могут содержать в себе как числа, так и строки. Чтобы не запутаться, когда, где, что и как делать, проще всего воспользоваться так называемыми форматированными строками. И для этого есть 2 способа. Первый — при помощи format.

То же самое можно сделать и со списком. Но тогда синтаксис будет немного другим:

Как видите, этот метод весьма удобен при работе со списками. Тогда как первый вариант всегда требует перепроверки, чтобы все элементы были строго на своих местах. А вот второй метод намного более гибкий, поскольку позволяет производить действия прямо «на ходу». Только взгляните:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить