Python Metoda String find() cu exemple

⚡ Rezumat inteligent

Python `string find()` este o metodă încorporată care returnează indexul primei apariții a unui subșir dintr-un șir. Returnează -1 când subșirul nu este prezent, evitând excepțiile.

  • 🔍 Sintaxă: Funcția find() primește un subșir plus indecși opționali de început și de sfârșit pentru a limita intervalul de căutare.
  • 🎯 Primul meci: Funcția find() returnează indexul cel mai mic al primei apariții, scanând de la stânga la dreapta.
  • Nu a fost găsit: find() returnează -1 în loc să genereze o eroare atunci când subșirul lipsește.
  • 🔁 rfind(): Metoda rfind() returnează indexul cel mai mare, căutând în schimb din partea dreaptă.
  • ⚠️ index(): Metoda index() se comportă ca și find(), dar generează o eroare ValueError atunci când subșirul lipsește.
  • 🤖 Asistență AI: Asistenții de codare bazați pe inteligență artificială generează logica find() și alimentează căutarea de subșiruri în conductele de text NLP.

Python String find()

Ce Este Python String find()?

Python String find() este o funcție disponibilă în Python bibliotecă pentru a găsi indexul primei apariții a unui subșir dintr-un șir dat. Funcția find() returnează -1 în loc să arunce o excepție atunci când subșirul specificat nu este prezent în șirul dat. Este una dintre Pythoncel mai utilizat metode cu șiruri pentru localizarea textului.

Sintaxa lui Python șir găsi ()

Sintaxa de bază a Python Funcția find() este după cum urmează:

string.find(substring,start,end)

Parametrii pentru metoda find().

Iată cei trei parametri ai funcției find() din Python:

  • subcordSubșirul pe care doriți să îl căutați în șirul dat.
  • Începe(opțional) Valoarea inițială de la care va începe căutarea subșirului. În mod implicit, este 0.
  • capăt(opțional) Valoarea finală la care se va încheia căutarea subșirului. În mod implicit, valoarea este lungimea șirului.

Exemplu de metoda find() cu valori implicite

Parametrii transmiși către Python Metoda find() reprezintă subșirul, adică șirul pe care doriți să îl căutați, plus valorile de început și de sfârșit. Valoarea de început este 0 în mod implicit, iar valoarea de sfârșit este lungimea șirului.

În acest exemplu, vom folosi metoda find() în Python cu valori implicite.

Metoda find() va căuta subșirul și va indica poziția primei apariții a subșirului. Dacă subșirul este prezent de mai multe ori în șirul dat, va returna în continuare indexul sau poziția primului.

Exemplu:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

ieșire:

The position of Tutorials is at: 12

Exemplu de find() folosind argumentul start

Puteți căuta subșirul în șirul dat și specifica poziția de început de unde va începe căutarea. Parametrul de început poate fi utilizat în acest scop.

Exemplul de mai jos specifică poziția de început ca fiind 20 și metoda find() din Python va începe căutarea de la poziția 20. Aici, poziția finală va fi lungimea șirului de caractere, deci va căuta până la sfârșitul șirului de caractere de la poziția 20 încolo.

Exemplu:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

ieșire:

The position of Tutorials is at 48

Exemplu de find() folosind argumentele start și end

Folosind parametrii de început și de sfârșit, putem limita căutarea în loc să căutăm întregul șir de caractere.

Exemplu:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

ieșire:

The position of Tutorials is at 12

Exemplu de metodă find() pentru a găsi poziția unui subșir dat într-un șir de caractere

Știm că find() ne ajută să găsim indexul primei apariții a unui subșir. Returnează -1 dacă subșirul nu este prezent în șirul dat. Exemplul de mai jos arată indexul atunci când șirul este prezent și -1 atunci când subșirul pe care îl căutăm nu este găsit.

Exemplu:

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

ieșire:

The position of Best site is at: 27
The position of Guru99 is at: -1

Python șir rfind()

Python Funcția rfind() este similară cu funcția find(), singura diferență fiind că rfind() oferă cel mai mare index pentru subșirul dat, în timp ce find() oferă cel mai mic index, adică primul index. Atât rfind(), cât și find() returnează -1 dacă subșirul nu este prezent.

În exemplul de mai jos, avem un șir de caractere „Meet GuruSite cu 99 de tutoriale. Cel mai bun site pentru Python Tutoriale!” și va încerca să găsească poziția subșirului Tutorials folosind find() și rfind(). Subșirul Tutorials apare de două ori în șir.

Iată un exemplu în care sunt folosite atât find() cât ș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"))

ieșire:

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

Rezultatul arată că find() oferă indexul primului subșir de tip Tutorials pe care îl găsește, în timp ce rfind() oferă ultimul index al subșirului Tutorials.

Python index de șir ()

Python Funcția `string index()` este o funcție care îți oferă poziția subșirului dat, la fel ca `find(). Singura diferență dintre cele două este că `index()` generează o excepție dacă subșirul nu este prezent în șir, în timp ce `find()` returnează -1.

Iată un exemplu de lucru care arată comportamentul index() și 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"))

ieșire:

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

Obținem aceeași poziție atât pentru find(), cât și pentru index(). Să vedem un exemplu în care subșirul dat nu este prezent în șir.

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

ieșire:

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

În exemplul de mai sus, încercăm să găsim poziția subșirului „test”. Subșirul nu este prezent în șirul dat, așa că folosind find() obținem poziția ca -1, dar pentru index() se generează o eroare, așa cum se arată mai sus.

Pentru a găsi apariția totală a unui subșir

Pentru a afla numărul total de apariții ale unui subșir în șirul dat, vom folosi funcția find() în PythonVom parcurge șirul folosind o buclă for de la 0 până la sfârșitul șirului, utilizând parametrul startIndex pentru find().

Variabilele startIndex și count vor fi inițializate la 0. În interiorul buclei for, vom verifica dacă subșirul este prezent în șirul dat folosind find() cu startIndex ca 0.

Valoarea returnată de find(), dacă nu este -1, va actualiza startIndex la indexul în care este găsit șirul și va incrementa, de asemenea, valoarea numărătorului.

Iată exemplul de lucru:

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 )

ieșire:

The total count of substring test is:  6

" Află mai multe despre Python Împărțire șiruri ()

Întrebări frecvente

Da. find() se potrivește exact cu subșirul, deci „Hello”.find(“h”) returnează -1 în timp ce „Hello”.find(“H”) returnează 0. Convertiți șirul mai întâi cu lower() sau upper() atunci când aveți nevoie de o căutare fără a ține cont de majuscule/minuscule.

Operatorul `in` returnează doar True sau False pentru a arăta dacă există un subșir. `find()` merge mai departe și returnează indexul exact al primei potriviri sau -1 când subșirul lipsește.

Da. find() acceptă indici de început și de sfârșit negativi, care se numără de la sfârșitul șirului de caractere. De exemplu, „Guru99”.find(“9”, -2) caută doar ultimele două caractere și returnează poziția acestora.

Metoda str.find() localizează câte o potrivire pe rând. Pentru toate potrivirile dintr-un singur apel, utilizați modulul re: re.findall() returnează fiecare subșir potrivit, iar re.finditer() generează obiecte potrivite cu fiecare poziție de început.

find() este o metodă care utilizează doar șiruri de caractere, așadar apelarea ei pe o listă generează o eroare AttributeError. Pentru a localiza un element într-o listă sau un tuplu, utilizați în schimb metoda index(), care returnează poziția primei potriviri.

Da. Pentru o căutare simplă de subșiruri, find() este implementată în C și rulează mai rapid decât compilarea unei expresii regulate. Folosește modulul re doar atunci când ai nevoie de modele, wildcard-uri sau potriviri multiple.

În învățarea automată și NLP, funcția find() localizează cuvinte cheie, etichete sau delimitatori în timp ce curăță și tokenizează textul. Detectarea prezenței unui subșir sau a locului în care se află acesta ajută la construirea de caracteristici și la analizarea intrărilor de model.

Da. GitHub Copilot completează automat apelurile find(), rfind() și index() dintr-un scurt comentariu care descrie obiectivul tău. Instrumentele de inteligență artificială Agentic merg mai departe, scriind logica de căutare, adăugând argumente de început și sfârșit și rulând testele.

Rezumați această postare cu: