Что такое Python String find ()?
Python String find () - это функция, доступная в библиотеке Python, для поиска индекса первого вхождения подстроки из данной строки. Функция string find () вернет -1 вместо того, чтобы генерировать исключение, если указанная подстрока отсутствует в данной строке.
В этом руководстве по методу строки Python find () вы узнаете:
- Что такое Python String find ()?
- Синтаксис строки Python find ()
- Пример метода find () со значениями по умолчанию
- Пример find () с использованием начального аргумента
- Пример find () с использованием начального и конечного аргументов
- Пример метода find () Чтобы найти позицию заданной подстроки в строке
- Строка Python rfind ()
- Индекс строки Python ()
- Чтобы найти полное вхождение подстроки
Синтаксис строки Python find ()
Базовый синтаксис функции Python find () следующий:
string.find(substring,start,end)
Параметры для метода find ()
Вот три параметра функции String find () в Python:- подстрока : подстрока, которую вы хотите найти в данной строке.
- start : (необязательно) Начальное значение, с которого начнется поиск подстроки. По умолчанию это 0.
- end : (необязательно) Конечное значение, на котором заканчивается поиск подстроки. По умолчанию значение равно длине строки.
Пример метода find () со значениями по умолчанию
Параметры, передаваемые в метод Python find (), представляют собой подстроку, то есть строку, которую вы хотите найти, начало и конец. По умолчанию начальным значением является 0, а конечным значением - длина строки.
В этом примере мы будем использовать метод find () в Python со значениями по умолчанию.
Метод find () выполнит поиск подстроки и выдаст позицию самого первого вхождения подстроки. Теперь, если подстрока присутствует в данной строке несколько раз, она все равно вернет вам индекс или позицию первой.
Пример:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials is at:", mystring.find("Tutorials"))
Выход:
The position of Tutorials is at: 12
Пример find () с использованием начального аргумента
Вы можете выполнить поиск в подстроке в данной строке и указать начальную позицию, с которой будет начинаться поиск. Для этого можно использовать параметр start.
В примере будет указана начальная позиция как 15, а метод find () в Python начнет поиск с позиции 15. Здесь конечной позицией будет длина строки, и поиск будет выполняться до конца строки с 15 позиций. вперед.
Пример:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials is at:", mystring.find("Tutorials", 20))
Выход:
The position of Tutorials is at 48
Пример find () с использованием начального и конечного аргументов
Используя параметр start и end, мы попытаемся ограничить поиск вместо поиска по всей строке.
Пример:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))
Выход:
The position of Tutorials is at 12
Пример метода find () Чтобы найти позицию заданной подстроки в строке
Мы знаем, что find () помогает нам найти индекс первого вхождения подстроки. Он возвращает -1, если подстрока отсутствует в данной строке. В приведенном ниже примере показан индекс, когда строка присутствует, и -1, когда мы не находим искомую подстроку.
Пример:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Best site is at:", mystring.find("Best site", 5, 40))print("The position of Guru99 is at:", mystring.find("Guru99", 20))
Выход:
The position of Best site is at: 27The position of Guru99 is at: -1
Строка Python rfind ()
Функция Python rfind () похожа на функцию find () с той лишь разницей, что rfind () дает самый высокий индекс для данной подстроки, а find () дает самый низкий, то есть самый первый индекс. И rfind (), и find () вернут -1, если подстрока отсутствует.
В приведенном ниже примере у нас есть строка «Знакомьтесь, сайт с учебными пособиями Guru99. Лучший сайт для учебных пособий по Python!» и попытаемся найти позицию подстроки Tutorials с помощью find () и rfind (). Учебники в строке встречаются дважды.
Вот пример, в котором используются как find (), так и rfind ().
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials using find() : ", mystring.find("Tutorials"))print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))
Выход:
The position of Tutorials using find() : 12The position of Tutorials using rfind() : 48
Вывод показывает, что find () дает индекс самой первой полученной подстроки Tutorials, а rfind () дает последний индекс подстроки Tutorials.
Индекс строки Python ()
Строка Python index () - это функция, которая дает вам позицию подстроки, заданной так же, как find (). Единственная разница между ними заключается в том, что index () вызовет исключение, если подстрока отсутствует в строке, а find () вернет -1.
Вот рабочий пример, показывающий поведение index () и find ().
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials using find() : ", mystring.find("Tutorials"))print("The position of Tutorials using index() : ", mystring.index("Tutorials"))
Выход:
The position of Tutorials using find() : 12The position of Tutorials using index() : 12
Мы получаем одинаковую позицию для find () и index (). Давайте посмотрим на пример, когда данная подстрока отсутствует в строке.
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"print("The position of Tutorials using find() : ", mystring.find("test"))print("The position of Tutorials using index() : ", mystring.index("test"))
Выход:
The position of Tutorials using find() : -1Traceback (most recent call last):File "task1.py", line 3, inprint("The position of Tutorials using index() : ", mystring.index("test"))ValueError: substring not found
В приведенном выше примере мы пытаемся найти позицию подстроки «test». Подстрока отсутствует в данной строке, и, следовательно, с помощью find () мы получаем позицию как -1, но для index () это вызывает ошибку, как показано выше.
Чтобы найти полное вхождение подстроки
Чтобы найти общее количество раз, когда подстрока встречается в данной строке, мы воспользуемся функцией find () в Python. Будет перебирать строку, используя цикл for от 0 до конца строки. Будет использовать параметр startIndex для find ().
Переменные startIndex и count будут инициализированы равными 0. Внутри for -loop будет проверять, присутствует ли подстрока внутри строки, заданной с помощью find () и startIndex как 0.
Значение, возвращаемое функцией find (), если не -1, обновит startIndex до индекса, в котором находится строка, а также увеличит значение счетчика.
Вот рабочий пример:
my_string = "test string test, test string testing, test string test string"startIndex = 0count = 0for i in range(len(my_string)):k = my_string.find('test', startIndex)if(k != -1):startIndex = k+1count += 1k = 0print("The total count of substring test is: ", count )
Выход:
The total count of substring test is: 6
Резюме
- Метод Python string find () помогает найти индекс первого вхождения подстроки в данной строке. Он вернет -1, если подстрока отсутствует.
- Параметры, передаваемые методу поиска подстроки Python, представляют собой подстроку, то есть строку, которую вы хотите найти, начало и конец. По умолчанию начальным значением является 0, а конечным значением - длина строки.
- Вы можете выполнить поиск в подстроке в данной строке и указать начальную позицию, с которой будет начинаться поиск. Для этого можно использовать параметр start.
- Используя параметр start и end, мы попытаемся ограничить поиск вместо поиска по всей строке.
- Функция Python rfind () похожа на функцию find () с той лишь разницей, что rfind () дает самый высокий индекс для данной подстроки, а find () дает самый низкий, то есть самый первый индекс. И rfind (), и find () вернут -1, если подстрока отсутствует.
- Строка Python index () - это еще одна функция, которая дает вам позицию подстроки, заданной так же, как find (). Единственная разница между ними заключается в том, что index () вызовет исключение, если подстрока отсутствует в строке, а find () вернет -1.
- Мы можем использовать find (), чтобы найти общее количество вхождений подстроки в заданную строку.