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