что такое подстрока в питоне
Основы работы со строками в Python
До сих пор мы обсуждали числа как стандартные типы данных в Python. В этом разделе руководства мы обсудим самый популярный тип данных, то есть строку и методы работы со строками в Python.
Что такое строка в Python?
Строка Python – это набор символов, заключенных в одинарные, двойные или тройные кавычки. Компьютер не понимает персонажей; внутри он хранит манипулируемый символ как комбинацию нулей и единиц.
Каждый символ кодируется символом ASCII или Unicode. Таким образом, мы можем сказать, что строки Python также называются набором символов Unicode.
В Python строки можно создавать, заключая символ или последовательность символов в кавычки. Python позволяет нам использовать одинарные кавычки, двойные кавычки или тройные кавычки для создания строки.
Рассмотрим следующий пример на Python для создания строки.
Проверим тип переменной str с помощью скрипта
В Python строки рассматриваются как последовательность символов, что означает, что Python не поддерживает символьный тип данных; вместо этого одиночный символ, записанный как ‘p’, рассматривается как строка длины 1.
Создание строки в Python
Мы можем создать строку, заключив символы в одинарные или двойные кавычки. Python также предоставляет тройные кавычки для представления строки, но обычно используется для многострочных строк или строк документации.
Индексирование и разбивка строк
Как и в других языках, индексирование строк Python начинается с 0. Например, строка «HELLO» индексируется, как показано на рисунке ниже.
Рассмотрим следующий пример:
Как показано в Python, оператор slice [] используется для доступа к отдельным символам строки. Однако мы можем использовать оператор:(двоеточие) в Python для доступа к подстроке из данной строки. Рассмотрим следующий пример.
Здесь мы должны заметить, что верхний диапазон, указанный в операторе среза, всегда является исключающим, т.е. если задано str = ‘HELLO’, тогда str [1: 3] всегда будет включать str [1] = ‘E’, str [2 ] = ‘L’ и ничего больше.
Рассмотрим следующий пример:
Рассмотрим следующий пример:
Переназначение строк
Обновить содержимое строк так же просто, как присвоить его новой строке. Строковый объект не поддерживает присвоение элемента, т. е. строка может быть заменена только новой строкой, поскольку ее содержимое не может быть частично заменено. Строки неизменяемы в Python.
Рассмотрим следующий пример.
Однако в примере 1 строку str можно полностью присвоить новому содержимому, это указано в следующем примере.
Удаление строки
Как мы знаем, строки неизменяемы. Мы не можем удалить символы из строки. Но мы можем удалить всю строку с помощью ключевого слова del.
Теперь мы удаляем всю строку.
Строковые операторы
Оператор | Описание |
---|---|
+ | Он известен как оператор конкатенации, используемый для соединения строк по обе стороны от оператора. |
* | Известен как оператор повторения. Он объединяет несколько копий одной и той же строки. |
[] | оператор среза. Он используется для доступа к подстрокам определенной строки. |
[:] | оператор среза диапазона, используется для доступа к символам из указанного диапазона. |
in | Оператор членства. Он возвращается, если в указанной строке присутствует определенная подстрока. |
not in | Также является оператором членства и выполняет функцию, обратную in. Он возвращает истину, если в указанной строке отсутствует конкретная подстрока. |
r / R | Используется для указания необработанной строки. Необработанные строки применяются в тех случаях, когда нам нужно вывести фактическое значение escape-символов, таких как «C: // python». Чтобы определить любую строку как необработанную, за символом r или R следует строка. |
% | Необходим для форматирования строк. Применяет спецификаторы формата, используемые в программировании на C, такие как %d или %f, для сопоставления их значений в python. Мы еще обсудим, как выполняется форматирование в Python. |
Рассмотрим следующий пример, чтобы понять реальное использование операторов Python.
Форматирование строки Python
Управляющая последовательность
Предположим, нам нужно написать текст – They said, “Hello what’s going on?” – данный оператор может быть записан в одинарные или двойные кавычки, но он вызовет ошибку SyntaxError, поскольку он содержит как одинарные, так и двойные кавычки.
Рассмотрим следующий пример, чтобы понять реальное использование операторов Python.
Мы можем использовать тройные кавычки для решения этой проблемы, но Python предоставляет escape-последовательность.
Символ обратной косой черты(/) обозначает escape-последовательность. За обратной косой чертой может следовать специальный символ, который интерпретируется по-разному. Одиночные кавычки внутри строки должны быть экранированы. Мы можем применить то же самое, что и в двойных кавычках.
Список escape-последовательностей приведен ниже:
Номер | Последовательность | Описание | Пример | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1. | \newline | Игнорирует новую строку |
Строка S | H | e | l | l | o |
Индекс | S[0] | S[1] | S[2] | S[3] | S[4] |
Индекс | S[-5] | S[-4] | S[-3] | S[-2] | S[-1] |
Любые операции среза со строкой создают новые строки и никогда не меняют исходную строку. В Питоне строки вообще являются неизменяемыми, их невозможно изменить. Можно лишь в старую переменную присвоить новую строку.
На самом деле в питоне нет и переменных. Есть лишь имена, которые связаны с какими-нибудь объектами. Можно сначала связать имя с одним объектом, а потом — с другим. Можно несколько имён связать с одним и тем же объектом.
3. Методы
3.1. Методы find и rfind
Аналогично, метод rfind возвращает индекс последнего вхождения данной строки (“поиск справа”).
3.2. Метод replace
3.3. Метод count
Подстрока в строке Python – поиск вхождения и наличия
В этом уроке мы рассмотрим подстроку в строке python и то, как она работает, ее поиск в самых простых примерах.
Определение строки
«Строка представляет собой последовательность из нескольких кодовых символов. Строка включает число или набор символов, которые могут включать буквенно-цифровые и специальные символы соответственно».
Буквально, обособляя символы кавычками, мы можем построить строку. Одинарные кавычки обрабатываются Python так же, как двойные кавычки. Построить строки так же легко, как присвоить значение переменной.
Предопределенные строковые методы
Здесь мы обсудим некоторые методы, которые используются для управления строками в Python. Они представлены в таблице ниже.
Что такое подстрока в Python?
Подстрока в Python – это последовательный сегмент символов в строке. Другими словами: «часть строки является подстрокой. Строка Python определяет несколько методов построения подстроки, проверки, включает ли строка подстроку, индекс подстроки и т. д.»
Например, подстрока «the better of» – «It was the better of times». А, «Itwastimes» – это серия «It was the better of times», а не подстрока.
Мы можем построить подстроку с помощью нарезки строки. Мы должны использовать метод split() для создания массива подстрок на основе указанного разделителя.
Синтаксис создания строки в Python приведен ниже:
Здесь индекс начинается с 0.
После успешного выполнения кода мы получили то, что видим ниже на экране.
Мы можем использовать метод find() или оператор in, чтобы оценить, доступна ли подстрока в последовательности или нет.
Мы можем определить количество итераций подстроки в массиве с помощью метода count().
Синтаксис проверки наличия подстроки:
После выполнения вышеуказанного кода мы получили следующий результат:
В языке Python нет встроенной функции для получения массива всех значений индекса подстроки. В конце концов, используя метод find(), мы можем просто добиться этого.
Синтаксис поиска всех индексов подстроки приведен ниже:
После успешного выполнения вышеуказанного программного кода мы получили следующий результат:
Это возвращает нарезанную строку, начиная с позиции 5 массива до последней из последовательности Python.
Это возвращает нарезанную строку от начала до конца index-1.
Это поможет вам получить на выходе всю строку.
Синтаксис для нарезки всей подстроки показан ниже:
Это возвращает один символ подстроки из строки.
Синтаксис для выделения одного символа из строки показан ниже:
После успешного выполнения вышеуказанного кода мы получили следующий результат:
Это поможет вам вернуть строку в обратном порядке.
После успешного выполнения вышеуказанного программного кода мы получили следующий результат:
Работа отрицательного индекса
Работоспособность отрицательного индекса продемонстрирована в таблице ниже.
P | Y | Т | H | О | N |
0 | 1 | 2 | 3 | 4 | 5 |
-5 | -4 | -3 | -2 | -1 | -0 |
Здесь, в приведенной выше таблице, мы используем слово Python, чтобы продемонстрировать точно работающую функциональность отрицательного индекса.
Используется для нарезки или подстроки строки с помощью отрицательного индекса. Индекс последовательности начинается с 0 до 5, и мы также будем использовать отрицательный индекс.
Синтаксис для нарезки строки с помощью отрицательного индекса показан ниже:
После успешного выполнения вышеуказанного программного кода мы получили следующий результат:
Используется для нарезки или подстроки строки с помощью положительного индекса.
Возвращает полные подстроки строки с помощью нарезки строки и понимания списка.
Возвращает полные подстроки строки с помощью нарезки строки и понимания списка.
Str Python. Строки в Python
Одним из самых распространённых типов данных является строковый. Вопреки расхожему мнению, программист чаще сталкивается не с числами, а с текстом. В Python, как известно, всё является объектами. Не исключение и строки – это объекты, состоящие из набора символов. Естественно, в языке существует широкий набор инструментов для работы с этим типом данных.
Строковые операторы
Операторы «+» и «*» в Питоне применимы не только к числам, но и к строкам.
Оператор сложения строк +
Оператор «+» выполняет операцию, называемую конкатенацией, — объединение строк.
Оператор умножения строк *
Оператор «*» дублирует строку указанное количество раз.
Это работает только с целочисленными множителями. Если умножить на ноль или отрицательное число, результатом будет пустая строка. Но лучше так не делать.
Оператор принадлежности подстроки in
Если надо проверить, содержится ли подстрока в строке, удобно пользоваться оператором “in”
Так же можно использовать этот оператор с «not» для инвертирования результата.
Встроенные функции строк в python
Пайтон содержит ряд удобных встроенных функций для работы со строками.
Функция ord() возвращает числовое значение символа, при чём, как для кодировки ASCII, так и для UNICODE.
Функция chr(n) возвращает символьное значение для данного целого числа, то есть выполняет действие обратное ord().
Функция len() возвращает количество символов в строке.
Функция str() возвращает строковое представление объекта.
Индексация строк
Строка является упорядоченной последовательностью символов. Другими словами, она состоит из символов, стоящих в определённом порядке. Благодаря этому, к символу можно обратиться по его порядковому номеру. Для этого надо указать номер символа в квадратных скобках. Нумерация начинается с нуля (0 – это первый символ).
Попытка обращения по индексу большему чем длина строки вызовет исключение IndexError:
Срезы строк
В Python существует механизм срезов коллекций. Срезы позволяют обратиться к подстроке используя индексы. Для этого надо в квадратных скобках указать: [начальный индекс : конечный индекс : шаг]. Каждый из параметров является необязательным. Поскольку строка это коллекция, срезы применимы и к ней.
Форматирование строки
В Python есть функция форматирования строки, которая официально названа литералом отформатированной строки, но обычно упоминается как f-string.
Главной особенностью этой функции является возможность подстановки значения переменной в строку.
Чтобы это сделать с помощью f-строки необходимо:
Изменение строк
Тип данных строка в Python относится к неизменяемым (immutable), но это почти не влияет на удобство их использования, ведь можно создать изменённую копию. Для этого есть два возможных пути:
Как Вы можете видеть, данный метод не меняет строку, а возвращает изменённую копию.
Встроенные методы строк в Python
Поскольку строка в Пайтон – это объект, у него есть свои методы. Методы – это те же самые функции, просто они «закреплены» за объектами определённого класса.
Изменение регистра строки
Если Вам надо изменить регистр строки, удобно использовать один из следующих методов
capitalize() переводит первую букву строки в верхний регистр, остальные в нижний.
Не алфавитные символы не изменяются:
lower() преобразует все буквенные символы в строчные.
swapcase() меняет регистр на противоположный.
title() преобразует первые буквы всех слов в заглавные
upper() преобразует все буквенные символы в заглавные.
Найти и заменить подстроку в строке
Эти методы предоставляют различные способы поиска в целевой строке указанной подстроки.
Каждый метод в этой группе поддерживает необязательные аргументы start и end. Они задают диапазон поиска: действие метода ограничено частью целевой строки, начинающейся в позиции символа start и продолжающейся вплоть до позиции символа end, но не включая его. Если start указано, а end нет, метод применяется к части строки от start до конца.
count() подсчитывает количество точных вхождений подстроки в строку.
endswith() определяет, заканчивается ли строка заданной подстрокой.
index() ищет в строке заданную подстроку.
Этот метод идентичен find(), за исключением того, что он вызывает исключение ValueError, если подстрока не найдена.
rfind() ищет в строке заданную подстроку, начиная с конца.
Возвращает индекс последнего вхождения подстроки, который соответствует её началу.
rindex() ищет в строке заданную подстроку, начиная с конца.
Этот метод идентичен rfind(), за исключением того, что он вызывает исключение ValueError, если подстрока не найдена.
startswith() определяет, начинается ли строка с заданной подстроки.
Классификация строк
Методы в этой группе классифицируют строку на основе символов, которые она содержит.
isalnum() возвращает True, если строка не пустая, а все ее символы буквенно-цифровые (либо буква, либо цифра).
isalpha() определяет, состоит ли строка только из букв.
isdigit() определяет, состоит ли строка из цифр.
isidentifier() определяет, является ли строка допустимым идентификатором (название переменной, функции, класса и т.д.) Python.
isidentifier() вернет True для строки, которая соответствует зарезервированному ключевому слову Пайтон, даже если его нельзя использовать.
Вы можете проверить, является ли строка ключевым словом Python, используя функцию iskeyword(), которая находится в модуле keyword.
Если вы действительно хотите убедиться, что строку можно использовать как идентификатор Питон, вы должны проверить, что isidentifier() = True и iskeyword() = False.
islower() определяет, являются ли буквенные символы строки строчными.
isprintable() определяет, состоит ли строка только из печатаемых символов.
Это единственный метод данной группы, который возвращает True, если строка не содержит символов. Все остальные возвращаются False.
isspace() определяет, состоит ли строка только из пробельных символов.
Тем не менее есть несколько символов ASCII, которые считаются пробелами. И если учитывать символы Юникода, их еще больше:
‘\f’ и ‘\r’ являются escape-последовательностями для символов ASCII; ‘\u2005’ это escape-последовательность для Unicode.
istitle() определяет, начинаются ли слова строки с заглавной буквы.
isupper() определяет, являются ли буквенные символы строки заглавными.
Выравнивание строк, отступы
Методы из данной группы управляют отображением строки.
center() выравнивает строку по центру.
Если указан необязательный аргумент fill, он используется как символ заполнения:
Если строка больше или равна указанной ширине, строка возвращается без изменений:
expandtabs() заменяет каждый символ табуляции (‘\t’) пробелами. По умолчанию табуляция заменяются на 8 пробелов.
tabsize необязательный параметр, задающий количество пробелов.
ljust() выравнивание по левому краю.
lstrip() удаляет переданные в качестве аргумента символы слева. По умолчанию это пробелы.
replace() заменяет вхождения подстроки в строке.
Необязательный аргумент count, указывает количество замен, которое нужно осуществить:
rjust() выравнивание по правому краю строки в поле.
rstrip() обрезает пробельные символы.
strip() удаляет символы с левого и правого края строки.
Когда возвращаемое значение метода является другой строкой, как это часто бывает, методы можно вызывать последовательно:
zfill() возвращает копию строки дополненную нулями слева для достижения длины строки указанной в параметре width:
Если строка короче или равна параметру width, строка возвращается без изменений:
Методы преобразования строки в список
Методы в данной группе превращают строку в другой тип данных и наоборот. Эти методы возвращают или принимают коллекции (чаще всего это список).
join() возвращает строку, которая является результатом конкатенации элементов коллекции и разделителя.
Стоит обратить внимание что все элементы итерируемого объекта должны быть строкового типа. Так же Вы могли заметить в последнем примере, что для объединения словаря в строку метод join() использует не значения, а ключи. Если Вам нужны именно ключи, то делается это так:
Сложнее ситуация, когда нужны пары ключ-значение. Здесь придётся сперва распаковать кортежи.
partition() делит строку на основе разделителя (действие, обратное join). Возвращаемое значение представляет собой кортеж из трех частей:
Если разделитель не найден, возвращаемый кортеж содержит строку и ещё две пустые строки:
rpartition() делит строку на основе разделителя, начиная с конца.
rsplit() делит строку на список из подстрок. По умолчанию разделителем является пробел.
split() делит строку на список из подстрок.
Ведет себя как rsplit(), за исключением того, что при указании maxsplit – максимального количества разбиений, деление начинается с левого края строки:
Если параметр maxsplit не указан, между rsplit() и split() разницы нет.
splitlines() делит текст на список строк и возвращает их в списке. Любой из следующих символов или последовательностей символов считается границей строки:
Разделитель | Значение |
\n | Новая строка |
\r | Возврат каретки |
\r\n | Возврат каретки + перевод строки |
\v или же \x0b | Таблицы строк |
\f или же \x0c | Подача формы |
\x1c | Разделитель файлов |
\x1d | Разделитель групп |
\x1e | Разделитель записей |
\x85 | Следующая строка |
\u2028 | Новая строка (Unicode) |
\u2029 | Новый абзац (Unicode) |
Заключение
В этом уроке мы рассмотрели основные инструменты для работы со строками в Python. Как видите, они удобны и гибки. Есть встроенные функции и методы объекта «строка», строковые литералы. Ещё больше возможностей даёт нерассмотренный в этом уроке метод format и модуль re. Так же отдельного разговора заслуживает работа с кодировками. Следует отметить для тех, кто уже знаком с другими языками программирования: в отличие от некоторых из них, один символ в Пайтоне тоже является строкой. И изюминка напоследок. Поскольку в Питоне всё является объектом, у каждой строки тоже есть атрибуты.
- что такое серый импорт
- почему друг не может подключиться к моему серверу майнкрафт по локальной сети