Python programlama dilinde metin tabanlı verileri temsil etmek için string (karakter dizisi) veri tipi kullanılır. Geliştirdiğiniz yazılımlarda kullanıcıdan girdi alırken, log dosyalarını analiz ederken ya da bir web servisinden gelen yanıtları işlerken metinler üzerinde değişiklik yapma ihtiyacı duyarsınız. Python, bu tür işlemleri hızlı ve hatasız bir şekilde gerçekleştirebilmeniz için zengin bir yerleşik string metotları kütüphanesi sunar.
String veri tipinin en temel özelliği değiştirilemez (immutable) olmasıdır. Bu durum, bir string üzerinde herhangi bir metot çalıştırdığınızda orijinal verinin değişmeyeceği, metodun geriye her zaman değiştirilmiş yeni bir string nesnesi döndüreceği anlamına gelir. Bu yazıda, günlük yazılım geliştirme süreçlerinde en sık ihtiyaç duyulan python string metotları kategorilerine ayrılarak incelenmiştir.
Büyük ve Küçük Harf Dönüşüm Metotları
Metin tabanlı verilerde tutarlılık sağlamak amacıyla harf boyutlarını standartlaştırmak gerekebilir. Özellikle kullanıcı adı veya e-posta denetimlerinde bu metotlar kritik rol oynar.
- lower(): Karakter dizisindeki tüm büyük harfleri küçük harfe çevirir.
- upper(): Karakter dizisindeki tüm küçük harfleri büyük harfe dönüştürür.
- capitalize(): Karakter dizisinin yalnızca ilk harfini büyük, kalan tüm harflerini küçük yapar.
- title(): Karakter dizisindeki her kelimenin ilk harfini büyük, diğer harflerini küçük yapar.
metin = "siber GÜVENLİK ve yazılım"
kucuk_metin = metin.lower()
buyuk_metin = metin.upper()
baslik_metin = metin.title()
ilk_harf_metin = metin.capitalize()
print(kucuk_metin)
print(buyuk_metin)
print(baslik_metin)
print(ilk_harf_metin)
Yukarıdaki kod çalıştırıldığında lower() tüm harfleri küçük hale getirerek siber güvenlik ve yazılım çıktısını verir. upper() metodu tüm harfleri büyütür. title() her kelimenin baş harfini düzenlerken capitalize() yalnızca dizinin en başındaki karakteri büyük yapar.
Boşluk ve İstenmeyen Karakterleri Temizleme Metotları
Kullanıcı formlarından veya harici dosyalardan okunan verilerin başında ve sonunda fazladan boşluklar ya da özel karakterler bulunabilir. Bu tür durumlarda temizleme metotları devreye girer.
- strip(): Metnin başındaki ve sonundaki boşlukları ya da belirtilen karakterleri siler.
- lstrip(): Yalnızca metnin solundaki (başındaki) karakterleri kaldırır.
- rstrip(): Yalnızca metnin sağındaki (sonundaki) karakterleri kaldırır.
kullanici_girdisi = " admin_usern"
temiz_veri = kullanici_girdisi.strip()
ozel_metin = "###Rapor Başlığı###"
sol_temiz = ozel_metin.lstrip("#")
tam_temiz = ozel_metin.strip("#")
print(repr(temiz_veri))
print(sol_temiz)
print(tam_temiz)
Bu örnekte strip() metodu, admin_user kelimesinin etrafındaki gereksiz boşlukları ve yeni satır (n) karakterini temizlemiştir. Karakter parametresi verildiğinde ise yalnızca belirtilen karakterler temizlenir.
Metin İçi Arama ve Sayma Metotları
Bir metin içerisinde belirli bir kelimenin, karakterin geçip geçmediğini ya da kaç kez tekrar ettiğini tespit etmek için bu fonksiyonlar kullanılır.
- count(): Belirtilen karakterin veya alt dizinin metin içinde kaç defa geçtiğini sayar.
- find(): Aranan karakterin metin içerisindeki ilk indeks numarasını döndürür. Karakter bulunamazsa geriye -1 döner.
- index(): find() ile benzer çalışır ancak aranan değer bulunamazsa ValueError hatası fırlatır.
log_kaydi = "HATA: Bağlantı koptu. HATA: Yeniden deneniyor."
hata_sayisi = log_kaydi.count("HATA")
ilk_konum = log_kaydi.find("Bağlantı")
olmayan_oge = log_kaydi.find("Kritik")
print("Hata Sayısı:", hata_sayisi)
print("Bağlantı kelimesinin indeksi:", ilk_konum)
print("Olmayan öge sonucu:", olmayan_oge)
Örnekte count() metodu ile log metninde kaç adet HATA geçtiği tespit edilmiş, find() ile de aranan kelimenin başlangıç konumu elde edilmiştir.
Ayırma, Parçalama ve Birleştirme Metotları
Veri işlemede metinleri belirli kurallara göre listelere bölmek veya liste elemanlarını tek bir metin halinde birleştirmek çok yaygın bir gereksinimdir.
- split(): Metni belirtilen bir ayırıcıya göre parçalar ve geriye bir liste döndürür. Varsayılan ayırıcı boşluktur.
- splitlines(): Metni satır sonu karakterlerine göre satır satır böler.
- join(): Bir listenin veya demetin elemanlarını aralarına belirtilen ayracı koyarak tek bir string haline getirir.
ip_listesi_str = "192.168.1.1,10.0.0.1,172.16.0.1"
ip_dizisi = ip_listesi_str.split(",")
protokoller = ["HTTP", "HTTPS", "SSH", "FTP"]
birlestirilmis_metin = " - ".join(protokoller)
print(ip_dizisi)
print(birlestirilmis_metin)
split(“,”) çağrısı virgülle ayrılmış IP adreslerini tek tek elemanlar halinde bir listeye dönüştürmüştür. join() metodu ise protokol listesini aralarına tire işareti koyarak tek bir satır metne çevirmiştir.
Değiştirme ve Doğrulama Metotları
Veri tabanı güncellemelerinde ya da veri doğrulamalarında kullanılan metotlar, güvenlik filtreleme aşamalarında da büyük kolaylık sağlar.
- replace(): Metin içindeki belirli bir karakter veya kelime grubunu başka bir değerle değiştirir.
- startswith(): Metnin belirtilen bir ifadeyle başlayıp başlamadığını kontrol eder (True/False).
- endswith(): Metnin belirtilen bir ifadeyle bitip bitmediğini denetler.
- isdigit(): Metnin sadece rakamlardan oluşup oluşmadığını kontrol eder.
- isalpha(): Metnin sadece alfabetik karakterlerden oluşup oluşmadığını denetler.
adres = "https://yunuskaytan.com"
dosya_adi = "analiz_raporu.pdf"
sayisal_deger = "2026"
guvenli_mi = adres.startswith("https")
pdf_mi = dosya_adi.endswith(".pdf")
rakam_mi = sayisal_deger.isdigit()
yeni_dosya = dosya_adi.replace(".pdf", ".txt")
print("Güvenli Protokol:", guvenli_mi)
print("PDF Dosyası:", pdf_mi)
print("Rakam mı:", rakam_mi)
print("Yeni Dosya Adı:", yeni_dosya)
Burada startswith() ve endswith() metotları mantıksal değer döndürerek dosya uzantısı veya URL kontrolünde pratiklik sağlamıştır. replace() ise dosya uzantısını doğrudan değiştirerek yeni bir metin üretmiştir.
Özet ve Sonraki Adımlar
Python string metotları, metin tabanlı verilerin doğrulanması, temizlenmesi ve yapılandırılması için gerekli olan tüm temel yetenekleri sunar. İmmutable yapıları gereği orijinal veriyi bozmadan güvenle işlem yapabilmenize imkân tanırlar.
String işlemlerinde daha ileri seviyeye geçmek için metin biçimlendirmede modern f-string kullanımını inceleyebilir, karmaşık metin arama ve ayrıştırma senaryoları için Python’ın re (düzenli ifadeler / regular expressions) modülünü öğrenmeye başlayabilirsiniz.


Yorumlar
Henüz yorum yok. İlk yorumu siz yazın.