Python Метод String find() із прикладами

Що таке Python String find()?

Python String find() – це функція, доступна в Python бібліотека, щоб знайти індекс першого входження підрядка з заданого рядка. Функція string find() поверне -1 замість виключення винятку, якщо вказаний підрядок відсутній у даному рядку.

Синтаксис Python рядок find()

Основний синтаксис Python Функція find() виглядає наступним чином:

string.find(substring,start,end)

Параметри для методу find().

Ось три параметри функції String find(). Python:

  • підрядка: Підрядок, який потрібно шукати в заданому рядку.
  • старт: (необов’язково) Початкове значення, з якого почнеться пошук підрядка. За замовчуванням це 0.
  • кінець: (необов’язково) кінцеве значення, на якому завершується пошук підрядка. За замовчуванням значенням є довжина рядка.

Приклад методу find() зі значеннями за замовчуванням

Параметри, передані в Python метод find() — це підрядок, тобто рядок, який потрібно шукати, початок і кінець. Початкове значення за замовчуванням дорівнює 0, а кінцеве – довжина рядка.

У цьому прикладі ми будемо використовувати метод find() in 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: 27
The position of Guru99 is at: -1

Python рядок rfind()

Команда Python Функція rfind() подібна до функції find() з тією лише різницею, що rfind() дає найвищий індекс для заданого підрядка, а find() дає найнижчий, тобто перший індекс. І rfind(), і find() повернуть -1, якщо підрядка немає.

У наведеному нижче прикладі ми маємо рядок «Знайомтеся із сайтом навчальних посібників Guru99. Найкращий сайт для Python Підручники!» і спробує знайти позицію підрядка Навчальні посібники за допомогою 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() :  12
The position of Tutorials using rfind() :  48

Результат показує, що find() дає індекс найпершої отриманої підрядки Tutorials, а rfind() дає останній індекс підрядка Tutorials.

Python рядковий індекс()

Команда Python string 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() :  12
The 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() :  -1
Traceback (most recent call last):
  File "task1.py", line 3, in <module>
    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. Inside for –loop перевірить, чи присутній підрядок у рядку, заданому за допомогою find() і startIndex як 0.

Значення, що повертається з find(), якщо не -1, оновить startIndex до індексу, де знайдено рядок, а також збільшить значення лічильника.

Ось робочий приклад:

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if(k != -1):
        startIndex = k+1
        count += 1
        k = 0
print("The total count of substring test is: ", count )

вихід:

The total count of substring test is:  6

Підсумки

  • Команда Python Метод string find() допомагає знайти індекс першого входження підрядка в заданий рядок. Він поверне -1, якщо підрядка немає.
  • Параметри, передані в Python метод find substring — це підрядок, тобто рядок, який ви хочете шукати, початок і кінець. Початкове значення за замовчуванням дорівнює 0, а кінцеве – довжина рядка.
  • Ви можете шукати підрядок у заданому рядку та вказати початкову позицію, з якої розпочнеться пошук. Для того ж можна використовувати параметр start.
  • Використовуючи параметр start і end, ми спробуємо обмежити пошук замість того, щоб шукати весь рядок.
  • Команда Python функція rfind() подібна до функції find() з тією лише різницею, що rfind() дає найвищий індекс для заданого підрядка, а find() дає найнижчий, тобто перший індекс. І rfind(), і find() повернуть -1, якщо підрядка немає.
  • Команда Python string index() — це ще одна функція, яка надасть вам позицію підрядка, заданого так само, як find(). Єдина різниця між ними полягає в тому, що index() створить виняток, якщо підрядка немає в рядку, а find() поверне -1.
  • Ми можемо використати find(), щоб знайти загальну кількість входжень підрядка в заданий рядок.

» Дізнайтеся більше про Python String split()