Python Metoda String find() s příklady
⚡ Chytré shrnutí
Python Metoda find() typu string vrací index prvního výskytu podřetězce v řetězci. Pokud podřetězec neexistuje, vrací -1, čímž se zabrání výjimkám.

Co je to Python String find()?
Python String find() je funkce dostupná v Python knihovna pro nalezení indexu prvního výskytu podřetězce v daném řetězci. Funkce find() vrací -1 namísto vyvolání výjimky, pokud zadaný podřetězec v daném řetězci není přítomen. Je to jeden z Pythonnejpoužívanější řetězcové metody pro vyhledání textu.
Syntaxe Python string find()
Základní syntaxe Python Funkce find() je následující:
string.find(substring,start,end)
Parametry pro metodu find().
Zde jsou tři parametry funkce find() v Python:
- podřetězecPodřetězec, který chcete v daném řetězci vyhledat.
- Začít: (volitelné) Počáteční hodnota, od které se začne hledat podřetězec. Ve výchozím nastavení je to 0.
- konec: (volitelné) Koncová hodnota, kde bude vyhledávání podřetězce ukončeno. Ve výchozím nastavení je hodnota délka řetězce.
Příklad metody find() s výchozími hodnotami
Parametry předané do Python Metoda find() je podřetězec, tedy řetězec, který chcete vyhledat, plus začátek a konec. Počáteční hodnota je ve výchozím nastavení 0 a koncová hodnota je délka řetězce.
V tomto příkladu použijeme metodu find() v Python s výchozími hodnotami.
Metoda find() vyhledá podřetězec a vrátí pozici jeho prvního výskytu. Pokud se podřetězec v daném řetězci vyskytuje vícekrát, stále vrátí index nebo pozici prvního z nich.
Příklad:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))
Výstup:
The position of Tutorials is at: 12
Příklad find() pomocí argumentu start
V daném řetězci můžete vyhledat podřetězec a zadat počáteční pozici, odkud bude vyhledávání zahájeno. Pro tento účel lze použít parametr start.
Níže uvedený příklad specifikuje počáteční pozici jako 20 a metodu find() v Python začne vyhledávání od pozice 20. Zde bude koncová pozice délka řetězce, takže se hledá až do konce řetězce od pozice 20 a dále.
Příklad:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))
Výstup:
The position of Tutorials is at 48
Příklad find() s použitím argumentů start a end
Pomocí parametrů start a end můžeme omezit vyhledávání namísto prohledávání celého řetězce.
Příklad:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))
Výstup:
The position of Tutorials is at 12
Příklad metody find() pro nalezení pozice daného podřetězce v řetězci
Víme, že find() nám pomáhá najít index prvního výskytu podřetězce. Pokud podřetězec v daném řetězci chybí, vrátí -1. Následující příklad ukazuje index, když je řetězec přítomen, a -1, když hledaný podřetězec není nalezen.
Příklad:
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))
Výstup:
The position of Best site is at: 27 The position of Guru99 is at: -1
Python řetězec rfind()
Jedno Python Funkce rfind() je podobná funkci find(), s jediným rozdílem, že rfind() vrací nejvyšší index pro daný podřetězec, zatímco find() vrací nejnižší, tedy úplně první index. Jak rfind(), tak find() vrací -1, pokud podřetězec není přítomen.
V níže uvedeném příkladu máme řetězec „Meet Guru99 stránek s tutoriály. Nejlepší stránka pro Python Návody!“ a pokusí se najít pozici podřetězce Tutorials pomocí funkcí find() a rfind(). Podřetězec Tutorials se v řetězci vyskytuje dvakrát.
Zde je příklad, kde jsou použity funkce find() i 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"))
Výstup:
The position of Tutorials using find() : 12 The position of Tutorials using rfind() : 48
Výstup ukazuje, že find() vrací index úplně prvního nalezeného podřetězce Tutorials, zatímco rfind() vrací poslední index podřetězce Tutorials.
Python řetězcový index()
Jedno Python Funkce index() v řetězci vrací pozici zadaného podřetězce, stejně jako find(). Jediný rozdíl mezi nimi je v tom, že index() vyvolá výjimku, pokud podřetězec v řetězci není přítomen, zatímco find() vrací -1.
Zde je pracovní příklad, který ukazuje chování index() a 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"))
Výstup:
The position of Tutorials using find() : 12 The position of Tutorials using index() : 12
Stejnou pozici získáme pro find() i index(). Podívejme se na příklad, kdy daný podřetězec v řetězci není přítomen.
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"))
Výstup:
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
Ve výše uvedeném příkladu se snažíme najít pozici podřetězce „test“. Podřetězec v daném řetězci chybí, takže pomocí find() získáme pozici -1, ale pro index() to vyvolá chybu, jak je ukázáno výše.
Chcete-li zjistit celkový výskyt podřetězce
Abychom zjistili celkový počet výskytů podřetězce v daném řetězci, použijeme funkci find() v PythonŘetězec budeme procházet smyčkou for od 0 do konce řetězce s využitím parametru startIndex pro find().
Proměnné startIndex a count budou inicializovány na 0. Uvnitř smyčky for zkontrolujeme, zda je podřetězec přítomen v daném řetězci pomocí funkce find() s proměnnou startIndex nastavenou na 0.
Hodnota vrácená z find(), pokud není -1, aktualizuje startIndex na index, kde je řetězec nalezen, a také zvýší hodnotu count.
Zde je pracovní příklad:
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 )
Výstup:
The total count of substring test is: 6
" Dozvědět se víc o Python Řetězec split()
