Python Örneklerle String find() Yöntemi

⚡ Akıllı Özet

Python `string find()` yöntemi, bir dize içindeki bir alt dizenin ilk geçtiği yerin dizinini döndürür. Alt dize mevcut olmadığında -1 döndürür ve böylece istisnaların önüne geçer.

  • 🔍 Sözdizimi: `find()` fonksiyonu, arama aralığını sınırlandırmak için isteğe bağlı başlangıç ​​ve bitiş indekslerinin yanı sıra bir alt dize alır.
  • 🎯 İlk maç: `find()` fonksiyonu, soldan sağa doğru tarama yaparak ilk eşleşmenin en düşük indeksini döndürür.
  • Bulunamadı: `find()` fonksiyonu, alt dize bulunmadığında hata vermek yerine -1 değerini döndürür.
  • 🔁 rfind(): rfind() metodu, aramayı sağ taraftan yaparak en yüksek indeksi döndürür.
  • ⚠️ dizin(): index() metodu, find() metodu gibi davranır ancak alt dize eksik olduğunda ValueError hatası verir.
  • 🤖 Yapay zeka yardımı: Yapay zekâ kodlama asistanları, doğal dil işleme (NLP) metin işlem hatlarında find() mantığı oluşturur ve alt dize aramasını güçlendirir.

Python Dize bulma()

Nedir? Python Dize bul()?

Python Dize bulma() Bu, mevcut bir fonksiyondur. Python Verilen bir dizenin içinde bir alt dizenin ilk geçtiği yerin indeksini bulmak için kullanılan bir kütüphanedir. `find()` fonksiyonu, belirtilen alt dize verilen dizede bulunmadığında istisna fırlatmak yerine -1 döndürür. Python'nin en çok kullanılanı dize yöntemleri Metni bulmak için.

sözdizimi Python dize bulma()

Temel sözdizimi Python find() işlevi aşağıdaki gibidir:

string.find(substring,start,end)

find() yöntemine ilişkin parametreler

İşte find() fonksiyonunun üç parametresi: Python:

  • alt dizeVerilen dizede aramak istediğiniz alt dize.
  • başlama: (isteğe bağlı) Alt dize aramasının başlayacağı başlangıç ​​değeri. Varsayılan olarak 0'dır.
  • son: (isteğe bağlı) Alt dize aramasının sona ereceği son değer. Varsayılan olarak, değer dizenin uzunluğudur.

Varsayılan değerlere sahip find() yöntemi örneği

Geçirilen parametreler Python `find()` metodu, aramak istediğiniz dizeye `start` ve `end` değerlerini ekleyerek alt dizeyi tanımlar. `start` değeri varsayılan olarak 0'dır ve `end` değeri dizenin uzunluğudur.

Bu örnekte, find() yöntemini kullanacağız. Python varsayılan değerlerle.

`find()` metodu, alt dizeyi arar ve alt dizenin ilk geçtiği yerin konumunu verir. Alt dize verilen dizede birden fazla kez geçiyorsa, yine de ilk geçtiği yerin dizinini veya konumunu döndürür.

Örnek:

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

Çıktı:

The position of Tutorials is at: 12

Start argümanını kullanan find() örneği

Verilen dizede istediğiniz alt dizeyi arayabilir ve aramanın başlayacağı başlangıç ​​konumunu belirtebilirsiniz. Bu amaçla `start` parametresi kullanılabilir.

Aşağıdaki örnekte başlangıç ​​pozisyonu 20 olarak belirtilmiştir ve find() metodu da bu şekilde çalışır. Python Arama 20. pozisyondan başlayacaktır. Burada bitiş pozisyonu dizenin uzunluğu olacaktır, bu nedenle 20. pozisyondan itibaren dizenin sonuna kadar arama yapılır.

Örnek:

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

Çıktı:

The position of Tutorials is at 48

Başlangıç ​​ve bitiş argümanlarını kullanan find() örneği

Başlangıç ​​ve bitiş parametrelerini kullanarak, tüm dizeyi aramak yerine aramayı sınırlandırabiliriz.

Örnek:

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

Çıktı:

The position of Tutorials is at 12

Bir dizenin içindeki belirli bir alt dizenin konumunu bulmak için kullanılan find() yönteminin örneği

`find()` fonksiyonunun, bir alt dizenin ilk geçtiği yerin indeksini bulmamıza yardımcı olduğunu biliyoruz. Alt dize verilen dizede mevcut değilse -1 döndürür. Aşağıdaki örnek, dize mevcut olduğunda indeksi ve aradığımız alt dize bulunmadığında -1 değerini göstermektedir.

Örnek:

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

Çıktı:

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

Python dize rfind()

MKS Python `rfind()` fonksiyonu, `find()` fonksiyonuna benzer; tek fark, `rfind()`'in verilen alt dize için en yüksek indeksi verirken, `find()`'in en düşük, yani ilk indeksi vermesidir. Hem `rfind()` hem de `find()` alt dize mevcut değilse -1 döndürür.

Aşağıdaki örnekte, "Meet" şeklinde bir dize bulunmaktadır. Guru99 Eğitim Videosu Sitesi. En iyi site Python Öğreticiler!” ifadesini çalıştıracak ve find() ve rfind() fonksiyonlarını kullanarak "Tutorials" alt dizesinin konumunu bulmaya çalışacaktır. "Tutorials" alt dizesi dizede iki kez geçmektedir.

Burada hem find() hem de rfind()'in kullanıldığı bir örnek verilmiştir.

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

Çıktı:

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

Çıktı, find() fonksiyonunun "Tutorials" alt dizesinin ilk bulduğu dizinini verdiğini, rfind() fonksiyonunun ise "Tutorials" alt dizesinin son dizinini verdiğini göstermektedir.

Python dize dizini()

MKS Python string index() fonksiyonu, find() fonksiyonuna benzer şekilde, verilen alt dizenin konumunu verir. İkisi arasındaki tek fark, index() fonksiyonunun alt dize dizede bulunmuyorsa istisna fırlatması, find() fonksiyonunun ise -1 döndürmesidir.

Burada index() ve find() işlevlerinin davranışını gösteren çalışan bir örnek verilmiştir.

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

Çıktı:

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

`find()` ve `index()` fonksiyonlarının her ikisinde de aynı konumu elde ederiz. Verilen alt dizenin dizede bulunmadığı bir örneğe bakalım.

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

Çıktı:

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

Yukarıdaki örnekte, "test" alt dizesinin konumunu bulmaya çalışıyoruz. Alt dize verilen dizede mevcut değil, bu nedenle `find()` kullanarak konumu -1 olarak buluyoruz, ancak `index()` yukarıda gösterildiği gibi bir hata veriyor.

Bir alt dizenin toplam oluşumunu bulmak için

Verilen dizede bir alt dizenin toplam kaç kez geçtiğini bulmak için, find() fonksiyonunu kullanacağız. Python. find() fonksiyonunun startIndex parametresini kullanarak, dizenin başından sonuna kadar bir for döngüsü ile dizeyi tarayacağız.

`startIndex` ve `count` değişkenleri 0 olarak başlatılacaktır. `for` döngüsünün içinde, `startIndex`'i 0 olarak ayarlayarak `find()` fonksiyonu ile alt dizenin verilen dize içinde olup olmadığını kontrol edeceğiz.

`find()` fonksiyonundan döndürülen değer -1 değilse, `startIndex` değişkeni dizenin bulunduğu dizine güncellenir ve ayrıca `count` değeri artırılır.

İşte çalışma örneği:

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 )

Çıktı:

The total count of substring test is:  6

" Hakkında daha fazla öğren Python Dize bölme()

SSS

Evet. `find()` alt dizeyi tam olarak eşleştirir, bu nedenle `Hello`.find("h") -1 döndürürken `Hello`.find("H") 0 döndürür. Büyük/küçük harf duyarlılığı olmayan bir arama yapmanız gerektiğinde, önce dizeyi `lower()` veya `upper()` ile dönüştürün.

`in` operatörü, bir alt dizenin var olup olmadığını göstermek için yalnızca `True` veya `False` değerini döndürür. `find()` ise daha da ileri giderek ilk eşleşmenin tam dizinini döndürür veya alt dize yoksa `-1` değerini döndürür.

Evet. `find()` fonksiyonu, dizenin sonundan itibaren sayan negatif başlangıç ​​ve bitiş indekslerini kabul eder. Örneğin, “Guru99”.find(“9”, -2) yalnızca son iki karakteri arar ve konumlarını döndürür.

`str.find()` metodu, her seferinde yalnızca bir eşleşme bulur. Tüm eşleşmeleri tek bir çağrıda bulmak için `re` modülünü kullanın: `re.findall()` her eşleşen alt dizeyi döndürür ve `re.finditer()` her başlangıç ​​pozisyonuyla eşleşme nesneleri üretir.

`find()` yalnızca dizeleri işleyen bir metottur, bu nedenle bir liste üzerinde çağrıldığında `AttributeError` hatası verir. Bir listede veya demette bir öğeyi bulmak için bunun yerine `index()` metodunu kullanın; bu metot ilk eşleşmenin konumunu döndürür.

Evet. Basit bir alt dize araması için, `find()` fonksiyonu C dilinde uygulanmıştır ve normal bir ifade derlemekten daha hızlı çalışır. `re` modülünü yalnızca desenlere, joker karakterlere veya birden fazla eşleşmeye ihtiyacınız olduğunda kullanın.

Makine öğrenimi ve doğal dil işlemede, `find()` fonksiyonu metni temizlerken ve belirteçlere ayırırken anahtar kelimeleri, etiketleri veya ayırıcıları bulur. Bir alt dizenin mevcut olup olmadığını veya nerede bulunduğunu tespit etmek, özellikler oluşturmaya ve model girdilerini ayrıştırmaya yardımcı olur.

Evet. GitHub Copilot, amacınızı açıklayan kısa bir yorumdan yola çıkarak find(), rfind() ve index() çağrılarını otomatik olarak tamamlar. Agentic AI araçları ise daha da ileri giderek arama mantığını yazar, başlangıç ​​ve bitiş argümanlarını ekler ve testlerinizi çalıştırır.

Bu yazıyı şu şekilde özetleyin: