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

Какво е 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 Разделяне на низове()
