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

⚡ Розумний підсумок

Python string find() — це вбудований метод, який повертає індекс першого входження підрядка в рядок. Він повертає -1, коли підрядок відсутній, уникаючи винятків.

  • 🔍 Синтаксис: find() приймає підрядок плюс необов'язкові початковий та кінцевий індекси для обмеження діапазону пошуку.
  • 🎯 Перший матч: find() повертає найнижчий індекс першого входження, скануючи зліва направо.
  • Не знайдено: find() повертає -1, а не викликає помилку, коли підрядок відсутній.
  • 🔁 rfind(): Метод rfind() повертає найвищий індекс, шукаючи з правого боку.
  • ⚠️ індекс(): Метод index() поводиться подібно до find(), але викликає ValueError, коли підрядок відсутній.
  • 🤖 Допомога AI: Помічники кодування на основі штучного інтелекту генерують логіку find() та забезпечують пошук підрядків у текстових конвеєрах NLP.

Python String find()

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

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

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

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

string.find(substring,start,end)

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

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

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

Приклад методу 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.

У наведеному нижче прикладі початкова позиція вказана як 20, а метод find() у Python розпочне пошук з позиції 20. Тут кінцева позиція буде довжиною рядка, тому пошук буде тривати до кінця рядка, починаючи з позиції 20 і далі.

приклад:

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() з використанням початкових і кінцевих аргументів

Використовуючи параметри початку та кінця, ми можемо обмежити пошук замість пошуку по всьому рядку.

приклад:

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 Підручники!” і спробує знайти позицію підрядка Tutorials за допомогою find() та rfind(). Підрядок Tutorials зустрічається в рядку двічі.

Ось приклад використання як 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. Усередині циклу for ми перевіримо, чи присутній підрядок у заданому рядку, використовуючи find() з startIndex як 0.

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

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

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 split()

Поширені запитання

Так. find() точно відповідає підрядку, тому “Hello”.find(“h”) повертає -1, тоді як “Hello”.find(“H”) повертає 0. Спочатку перетворіть рядок за допомогою lower() або upper(), якщо вам потрібен пошук без урахування регістру.

Оператор in повертає лише True або False, щоб показати, чи існує підрядок. find() йде далі та повертає точний індекс першого збігу або -1, якщо підрядок відсутній.

Так. find() приймає від’ємні початковий та кінцевий індекси, які відраховуються з кінця рядка. Наприклад, «Guru99”.find(“9”, -2) шукає лише два останні символи та повертає їхню позицію.

Метод str.find() знаходить по одному збігу за раз. Для всіх збігів в одному виклику використовуйте модуль re: re.findall() повертає кожен відповідний підрядок, а re.finditer() видає об'єкти збігу з кожною початковою позицією.

find() — це метод, який працює лише з рядками, тому його виклик у списку викликає помилку AttributeError. Щоб знайти елемент у списку або кортежі, використовуйте метод index(), який повертає позицію першого збігу.

Так. Для простого пошуку підрядків, find() реалізовано в C і виконується швидше, ніж компіляція регулярного виразу. Звертайтеся до модуля re лише тоді, коли вам потрібні шаблони, підстановочні символи або кілька збігів.

У машинному навчанні та NLP, find() знаходить ключові слова, теги або роздільники під час очищення та токенізації тексту. Виявлення наявності підрядка або його розташування допомагає створювати функції та аналізувати вхідні дані моделі.

Так. GitHub Copilot автоматично завершує виклики find(), rfind() та index() з короткого коментаря, що описує вашу мету. Інструменти Agentic AI йдуть далі, пишучи логіку пошуку, додаючи початкові та кінцеві аргументи та запускаючи ваші тести.

Підсумуйте цей пост за допомогою: