Метод Python String find () с примерами

Содержание:

Anonim

Что такое 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, in print("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 (), чтобы найти общее количество вхождений подстроки в заданную строку.