Ders-19: Python Karakter Dizileri-2
Python Karakter Dizileri-2
Bir önceki dersimizde karakter dizilerinin genele özelliklerinden bahsettik. Bu dersimizde ise bazı metotlardan bahsedeceğiz. Metotlar Python’da nesnelerin niteliklerini değiştirmemizi, sorgulamamızı veya bu nesnelere yeni özellikler katmamızı sağlayan araçlardır. Bu metotlar sayesinde karakter dizilerinin yeni özelliklerine değineceğiz.
replace()
Adından da anlaşılacağı gibi bu metot ile karakter dizelerinin içerisindeki karakterleri belirleyeceğimiz başka karakterler ile değiştirebiliyoruz.
ch="btogrenme"
chNew=ch.replace("b","B")
print (chNew)
EKRAN ÇIKTISI:
Btogrenme
Yukarıdaki kodları incelerseniz. replace metotu ile ch değişkenindeki “b” leri “B” yaptık. chNew adında yeni değişkene aktararak ekrana yazdırdık.
ch="btogrenme"
chNew=ch.replace("bt","BT")
print (chNew)
EKRAN ÇIKTISI:
BTogrenme
Eğer değiştireceğimiz kısım sınırlı sayıda ise üçüncü bir parametreye ihtiyacımız var. Aşağıdaki örneği inceleyebilirsiniz.
ch="Python Lessons"
chNew=ch.replace("s","S",2)
print (chNew)
EKRAN ÇIKTISI:
Python LeSSons
Yukarıdaki örnek s harflerini S ile değiştirir. Fakat üçüncü parametre ile bu değişim sınırlandırılmıştır. Sadece 2 karakteri değiştirmektedir.
split()
Karakter dizilerini belirli noktalardan böler parçalar.
ch="Red Blue Purple"
chNew=ch.split()
print (chNew)
EKRAN ÇIKTISI
['Red', 'Blue', 'Purple']
Sonuç olarak bir liste üretti. İstersek for döngüsü ile bu liste içerisinde döngü oluşturup değerleri tek tek ekrana yazdırabiliriz. Bölme işlemini yaparken split metodu boşluk karakterini baz alarak bölme işlemini yapmaktadır. Yani boşluklardan bölme yapılmaktadır. Eğer parametre ile kullanılacak olursa durum böyle olmamaktadır.
ch="Red * Blue * Purple"
chNew=ch.split("*")
print (chNew)
EKRAN ÇIKTISI
['Red', 'Blue', 'Purple']
Yukarıdaki örnekte split metodunu bir parametre ile kullandık. Böylece ch değişkeninde ki * karakteri baz alınarak parçalama işlemi gerçekleşti.
lower ():
Bazı programlarda kullanıcıdan istenen veriler büyük-küçük harfe duyarlıdır. Yani mesela kullanıcıdan bir parola isteniyorsa, kullanıcının bu parolayı büyük-küçük harfe dikkat ederek yazması gerekir. Bu programlar açısından, örneğin ‘parola’ ve ‘Parola’ aynı kelimeler değildir. Mesela kullanıcının parolası ‘parola’ ise, bu kullanıcı programa ‘Parola’ yazarak giremez.
Bazı başka programlarda ise bu durumun tam tersi söz konusudur. Yani büyük-küçük harfe duyarlı programların aksine bazı programlar da kullanıcıdan gelen verinin büyük harfli mi yoksa küçük harfli mi olduğunu önemsemez. Kullanıcı doğru kelimeyi büyük harfle de yazsa, küçük harfle de yazsa program istenen işlemi gerçekleştirir. Mesela Google’ da yapılan aramalar bu mantık üzerine çalışır. Örneğin ‘kitap’ kelimesini Google’ da aratıyorsanız, bu kelimeyi büyük harfle de yazsanız, küçük harfle de yazsanız Google size aynı sonuçları gösterecektir. Google açısından, aradığınız kelimeyi büyük ya da küçük harfle yazmanızın bir önemi yoktur.
Aşağıdaki örneği inceleyelim:
kişi = input("Aradığınız kişinin adı ve soyadı: ")
kişi = kişi.lower()
if kişi == "ahmet öz":
print("email: [email protected]")
print("tel : 02121231212")
print("şehir: istanbul")
elif kişi == "mehmet söz":
print("email: [email protected]")
print("tel : 03121231212")
print("şehir: ankara")
elif kişi == "mahmut göz":
print("email: [email protected]")
print("tel : 02161231212")
print("şehir: istanbul")
else:
print("Aradığınız kişi veritabanında yok!")
Yukarıdaki örnekte kullanıcıdan bir isim istenmektedir. kişi = kişi.lower() komuru ile bu değişken tamamen küçük harfe çevrilmektedir. Bunun anlamı Kullanıcı “AHMET ÖZ”, “Ahmet Öz”, “AHmet Öz” girse dahi tüm karakterler küçük harfe çevrileceği için if bloğunda ilgili kısım aktif olacaktır.
>>> kardiz = "ELMA"
>>> kardiz.lower()
'elma'
>>> kardiz = "arMuT"
>>> kardiz.lower()
'armut'
>>> kardiz = "PYTHON PROGRAMLAMA"
>>> kardiz.lower()
'python programlama'
upper ():
Bu metot ise lower () metodunun tam tersini gerçekleştirir. Karakterin tüm öğelerini büyük harfe çevirir.
şehir = input("Hava durumunu öğrenmek için bir şehir adı girin: ")
şehir = şehir.upper()
if şehir == "ADANA":
print("parçalı bulutlu")
elif şehir == "ERZURUM":
print("karla karışık yağmurlu")
elif şehir == "ANTAKYA":
print("açık ve güneşli")
else:
print("Girdiğiniz şehir veritabanında yok!")
Yukarıdaki örnekte kullanıcıdan bir il girmesi istenmektedir. Bu girilen değer ise upper () metodu ile tamamen büyük harflere dönüştürülüyor.
islower(), isupper()
Bu metotlar ise karakter dizisinin üzerinde herhangi bir değişiklik yapmadan karakter dizisinin durumunu sorgular. Aşağıdaki örneklere bakalım.
>>> ch= "istihza"
>>> ch.islower()
True
>>> ch= "Ankara"
>>> ch.islower()
False
veri = input("Adınız: ")
if not veri.islower():
print("Lütfen isminizi sadece küçük harflerle yazın")
Yukarıdaki örnekte kullanıcının girdiği veri tamamen küçük harf değilse ekrana uyarı mesajı yazdırılır. Kullanıcıdan tamamen küçük harfler ile giriş yapılması beklenir.
endswith()
Bu metot yardımıyla bir karakter dizisinin hangi karakter dizisi ile bittiğini sorgulayabiliyoruz. Yani örneğin:
>>> ch= "istihza"
>>> ch.endswith("a")
True
Aşağıdaki örneği dikkatlice inceleyiniz.
veri1 = "python.doc"
veri2 = "tkinter.mp3"
veri3 = "pygtk.ogg"
veri4 = "movie.avi"
veri5 = "sarki.mp3"
veri6 = "filanca.ogg"
veri7 = "falanca.mp3"
veri8 = "dosya.avi"
for i in veri1, veri2, veri3, veri4, veri5, veri6, veri7, veri8:
if i.endswith(".mp3"):
print(i)
Yukarıda ki örnekte veri1 den veri8 e kadar bir döngü açılmış ve bu veriler içerisinde son karakterleri “.mp3” olanlar ekrana yazdırılıyor.
startswith():
Bu metot, biraz önce gördüğümüz endswith()
metodunun yaptığı işin tam tersini yapar. Hatırlarsanız endswith()
metodu bir karakter dizisinin hangi karakter veya karakterlerle bittiğini denetliyordu. startswith()
metodu ise bir karakter dizisinin hangi karakter veya karakterlerle başladığını denetler.
>>> ch= "python"
>>> ch.startswith("p")
True
>>> ch.startswith("a")
False