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

⚡ Умно обобщение

Python string find() е вграден метод, който връща индекса на първото срещане на подниз в низ. Той връща -1, когато поднизът не е наличен, като по този начин се избягват изключения.

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

Python Намиране на низ ()

Какво е Python String find()?

Python Намиране на низ () е функция, налична в Python библиотека за намиране на индекса на първото срещане на подниз в даден низ. Функцията find() връща -1, вместо да хвърли изключение, когато посоченият подниз не присъства в дадения низ. Това е една от Pythonнай-използваният низови методи за намиране на текст.

Синтаксис на Python намиране на низ ()

Основният синтаксис на 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 Функцията 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 Разделяне на низове()

Въпроси и Отговори

Да. 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 отиват по-далеч, като пишат логиката за търсене, добавят начални и крайни аргументи и изпълняват вашите тестове.

Обобщете тази публикация с: