Aslında string yapıları sandığımızdan yahut şimdiye kadar gördüğümüzden daha fazla özelliğe sahiptirler. Bu yazıda bunlara değineceğiz. string yapılarıyla dilediğimiz gibi oynayabiliyoruz. Bu yazı içerisinde metotların ismini İngilizce olarak öğrenirseniz anlamanız daha kolay olur. Metotları Türkçe'ye çevirerek anlamlarını görebilirsiniz.
İsterseniz ilk önce dir(str) diyerek başlayalım; bunun ne demek olduğunu biliyorsunuz.

Bu şekilde daha sade bir görünüm de elde edebilirsiniz. Şimdi, bazı metotları görelim.
capitalize()Bu fonksiyon, sahip olduğunuz bir kelime veya metnin ilk harfini büyütecektir.

Bu noktada string ifadenizin kaç kelime veya cümleden oluştuğunun bir önemi yoktur. Yalnızca ilk harf büyük yazılacaktır.
upper() - lower()upper() fonksiyonu, karakter gözetmeksizin bütün karakterin büyük harf ile yazılmasını sağlarken lower() fonksiyonu bunların küçük harflerle yazılmasını sağlar. Bakalım.

swapcase()Bu fonksiyon, sahip olduğunuz string yapıdaki küçük harfleri büyük harfe, büyük harfleri ise küçük harfe dönüştürüyor.

title()Normal şartlarda "Başlık" anlamına gelir. Zaten buna göre anlamlandırmanız gerekir. Başlıklarda her kelimenin ilk harfi büyük yazıldığından dolayı title() fonksiyonu bir metin içerisindeki bütün kelimelerin ilk harfini büyük yapacaktır.

istitle()Bu fonksiyon, string içerisindeki her kelimenin ilk harfinin büyük olup olmadığına bakar. Eğer öyleyse True, değilse False değer döndürür.

center()Bu fonksiyon, karakter dizinizi ortalamanıza olanak tanır. İki argüman alacaktır. Birinci argüman int bir değer olmalıdır ve bu, verilecek boşluğu simgeler. İkincisi ise (bunu vermenize gerek yok) verdiği o boşlukları bir karakterle doldurmanıza olanak tanır. Görünce daha net anlayacaksınız.

center(70) dediğimizde hem sağdan hem de soldan 70 birim alacak ve string ifademizi oraya yerleştirecektir. center(70, '-') dediğimizde ise verdiğimiz bu 70 birimlik boşlukları tire işareti ile dolduracaktır. Bu noktada birim sayısını veya karakter şeklini belirlemek size kalmış.
ljust() - rjusdt()ljust() fonksiyonunun açılımı "left just" yani "yalnızca sol" şeklindedir. Bu, string ifadenizi sola yaslayacaktır ve verdiğiniz birim değeri kadar sağ tarafa boşluk bırakacaktır. Bu fonksiyon da ikinci parametreyi alabilir.
rjust() fonksiyonunun açılımı "right just" yani "yalnızca sağ" şeklindedir. Bu, string ifadenizi sağa yaslayacaktır ve verdiğiniz birim değeri kadar sol tarafa boşluk bırakacaktır. Bu fonksiyon da ikinci parametreyi alabilir.

replace()Bu fonksiyon sayesinde istediğiniz bir karakterin yerine başka bir karakter koyabilirsiniz.

İlk örnekte Visual Studio Code şeklindeki string ifadesinde bulunan u harflerini x'e, o harflerini ise y'ye dönüştürdük. Yani ilk argüman değiştirilecek karakter iken ikinci argüman yerine koymak istediğiniz karakteri temsil ediyor.
Bu fonksiyon üçüncü bir argüman da alabilir. Verdiğiniz bu argüman int tipinde olmalıdır. Buradaki amaç, dönüştürülecek karakterlerden kaçının dönüştürüleceğini belirlemektir. Bakalım.

startswith()Bu fonksiyon ile bir string ifadesinin hangi harfle başladığını sorgulayabilirsiniz. Bu fonksiyon True veya False değer döndürür. Ancak bununla oynayabilirsiniz.

startswith("C") dediğinizde verdiğiniz string ifadesinin C harfiyle başlayıp başlamadığı kontrol edilir. Eğer C harfi ile başlıyorsa True, başlamıyorsa False değer dönecektir. Ayrıca buraya yalnızca bir karakter yazmanıza gerek yoktur; bir kelime de yazabilirsiniz. Örneğin 9. satırda bulunan startswith("Ciel") şeklindeki kod ile bu string ifadenin Ciel kelimesiyle başlayıp başlamadığını sorguladık ve Ciel kelimesi ile başlamadığı için False değer aldık.
Ayrıca bu fonksiyon büyük-küçük harf hassasiyetine de sahiptir. Örneğin küçük c harfi ile başlayıp başlamadığını sorgulayalım.

Gördüğünüz üzere False döndü.
endswith()Bu fonksiyon ise bir öncekinin tam tersidir. En sondaki harfe ya da kalıba bakacaktır.

count()Bu fonksiyon, verdiğiniz argümanın string ifade içerisinde kaç defa geçtiğini gösterecektir.

isalpha()Bu fonksiyon, bir string ifadenin yalnızca alfabetik karakterlerden oluşup oluşmadığına bakar. Eğer string ifade yalnızca harflerden oluşuyorsa True, içerisinde sayı ya da özel karakter varsa da False olarak dönecektir.

isdigit()Bu fonksiyon ise bir string ifadenin sayılardan oluşup oluşmadığına bakar. Eğer yalnızca sayısal ifadeler mevcutsa True, başka herhangi bir ifade mevcutsa False değer döndürecektir.

isalnum()Bu fonksiyonun açılımı "is alphabetic numeric" şeklindedir. Bu fonksiyon, hem alfabetik karakterler hem de sayısal karakterlerden oluşan string yapılarına True değer döndürecektir.

Gördüğünüz üzere word2 değişkeninin değerinde # ifadesi var. Dolayısıyla False değer döndü. word1 değişkeninde ise hem numerik hem de alfabetik ifadeler bulunduğu için True değeri döndü.
isupper() - islower()isupper(), string ifadenin tamamının büyük harflerle yazılıp yazılmadığını kontrol eder. Eğer string ifadenin tamamı büyük harflerle yazılmışsa True, yazılmamışsa False değer döner.

islower(), string ifadenin tamamının küçük harflerle yazılıp yazılmadığını kontrol eder. Eğer string ifadenin tamamı küçük harflerle yazılmışsa True, yazılmamışsa False değer döner.

isspace()Bu fonksiyon, yalnızca boş string yapılarını dinler. Önce örneğe bakalım.

word1 isimli değişken, boş bir string değerine sahip olduğu için isspace() fonksiyonu bize True değer döndürdü. Aksi durumda word2 isimli değişken boş bir değer olmadığı için False değer döndürdü.
isidentifier()Bu fonksiyon, bir değerin değişken, fonksiyon ya da sınıf olarak tanımlanıp tanımlanamayacağını gösterir. Eğer bir tanımlamada kullanılabiliyorsa True, kullanılamıyorsa False değerini alır. Örneğin;

word1 = "0" değeri için False değer döndü çünkü "0" ifadesi ile değişken, sınıf ya da fonksiyon tanımlayamayız. Örneğin; 0 = "deger" diyemeyiz. Ancak cyberWorm = "deger" diyebiliriz yani bunu bir değişken, sınıf ya da fonksiyon tanımlarken kullanabiliriz. Dolayısıyla True değer döndü. Aşağıdaki görsel daha açıklayıcı olabilir.

find()Bu fonksiyon, bir string içerisinde aradığınız bir harfin index'ini verecektir. Bakalım.

En soldan başlayarak (boşluk dahil) her karakteri sayacaktır. Karaktere denk geldiği zaman onun index'ini döndürür. Eğer olmayan bir karakter bulmaya çalışırsak -1 sonucunu alırız.

find() fonksiyonunun aşağıdaki gibi bir kullanımı da vardır.

Arayacağınız karakteri yazdıktan sonra başlangıç ve bitiş değerleri belirleyebilirsiniz. Örneğin yukarıdaki görselde 'y' harfini aradığımızı görüyorsunuz. Normalde word değişkeni içerisinde o harf mevcut ama ben 6, 9 dediğim için bu harfi altıncı ve dokuzuncu index'ler arasında arayacaktır. Altıncı index W, dokuzuncu index m harfine denk geldiği ve o arada y harfi bulunmadığı için -1 sonucu döndürüldü.
index()Bu fonksiyon ise verdiğiniz karakterin, string içerisinde kaçıncı index'te olduğunu gösterir. find() fonksiyonu ile aynı işi aynı şekilde yapar. Aralarındaki tek fark; aradığınız harf string içerisinde yoksa -1 değerini döndürmek yerine hata mesajı verir. Duruma göre dilerseniz try-except ile kontrol sağlayarak bunu yönetebilirsiniz. Yahut direkt olarak find() metodunun çıktısını yönetebilirsiniz.

join()Bu fonksiyon ile bir string'i bölüp her karakterin arasına dilediğinizi yerleştirebilirsiniz.

Gördüğünüz gibi; string ifadesi, join() fonksiyonuna veriliyor. Yani word.join() demek yerine join(word) diyoruz. Bu noktada, eklenecek olan şey her ne ise onu join() fonksiyonuna bağlıyoruz. Yani sonuçta şu şekilde bir yapı kullanıyoruz: "bir şeyler".join(word)
strip()Bu fonksiyon, string bir ifadenin başında veya sonunda bulunan boşlukları ve özel kaçış karakterlerini silecektir. Aşağıdaki görseli kutuların renk uyumuna dikkat ederek incelerseniz rahatlıkla anlayabilirsiniz.

Bu fonksiyon ayrıca, genel olarak belli harfleri yok etmek için de kullanılır. Örneğe bakalım.

strip("ah") dediğimiz zaman baştaki ve sondaki harflere yöneldi; a ve h harflerini çıkardı. Demek ki strip() fonksiyonu, sağ ve soldan tarama yaparak çıkarma işlemini gerçekleştiriyor. Peki, ufak bir örnek daha yapalım.

Sol tarafta a ve b harfleri mevcut. strip() fonksiyonu a harflerini çıkardıktan sonra b harfleri geldiği için ve parametre olarak b harfini de verdiğimiz için onları da yok etti. Sağ taraf için de aynı şeyler geçerli.
Bir örnek daha yapalım.

a harfi başarıyla çıkarıldı ama d harfi hâlâ yerinde duruyor. Python, sağa ve sola baktığında sol tarafta a harfini gördü ve onu çıkardı. Sonrasında d harfi için sağa ve sola baktığında d harfini göremedi çünkü sol tarafta b, sağ tarafta ise h harfi mevcut. Dolayısıyla d harfini çıkaramadı. Bu, strip() fonksiyonunun sağa ve sola bakıyor olmasından kaynaklıdır.
Eğer spesifik olarak sadece sağa veya sola baksın isterseniz iki alt strip metodu vardır. Sadece sağa bakmak için rstrip(), sadece sola bakmak için lstrip().
split()Bu fonksiyon, bir string yapısını bölerek her parçayı bir liste elemanı olarak tutar.

Herhangi bir argüman vermediğimizde string ifadenin tamamını bir listeye ekleyecektir. Şimdi, bu ifadeye rastgele virgüller koyalım ve strip(",") diyelim.

string ifadenin bazı yerlerine virgül koydum ve split(",") dedim. Bu sayede Python'a şunu demiş olduk: "Virgül gördüğün yerde ayır".
Aynı şeyi boşluklar için de yapabiliriz. Bakalım.

split(" ") dedik ve bu sayede Python, boşluk gördüğü her kısımda ayırma işlemini gerçekleştirdi. Evet, madem bunlar birer liste. O zaman index kullanamaz mıyım?

Elbette kullanabilirim.
Blogun başında gösterdiğim yöntemle diğer metotlara da bakabilir ve aralarında anlatmadığım varsa onları da araştırabilirsiniz. Sevgiler.
Yayınlanma Tarihi: 2022-12-20 16:11:45
Son Düzenleme Tarihi: 2022-12-22 22:52:25