Merhaba arkadaşlar,
Bugün işleyeceğimiz konu karakter dizileri ve karakter dizisi metotları. Karakter dizilerini ve metotlarını tam anlamıyla kavramış olmak çok önemli çünkü gerek kullanıcıdan veri aldığımızda verinin hafızada nasıl tutulacağı gerekse aldığımız veride ne çeşit oynamaları nasıl yapacağımız tamamen metot bilgimize bağlı olacak. O yüzden herhangi bir anlam karmaşası yaşarsanız veya bir yeri net yazmadığımı düşünürseniz yazı altına yorum yazmanız yeterli. Kısa sürede anlam karmaşasını veya bulanıklığı ortadan kaldırırız.
Etkileşimli kabuğu açalım.
Karakter dizilerini tırnak işaretleri arasında gösterdiğimizi söylemiştik. Yani “program” yazısı ne kadar karakter dizisiyse “34” verisi de o kadar karakter dizisidir. Hadi, bunu geçen ders de öğrendiğimiz type() fonksiyonu ile doğrulayalım.
>>> type("program")
<class 'str'>
>>> type("34")
<class 'str'>
Karakter dizilerinde ve diğer veri tiplerinde index denilen ve son derece önemli olan bir konu var, ona değinelim. İndex karakter dizisinde ki her elemanın sahip olduğu bir sayıdır. Karakter dizisinin ilk karakteri 0 index’ine sahipken diğer karakterleri karakter sırasına göre birer birer artarak index’lenir.
>>> a[0]
'd'
>>> a="donanım"
>>> a[0]
'd'
Python da herhangi bir verinin herhangi bir alt verisine index aracılığı ile erişiriz. Bunu örnek vererek açıklamak daha kolay olacak o yüzden yazmaya başlayalım.
>>> a[1]
'o'
>>> a[2]
'n'
>>> a[len(a)-1]
'm'
>>> a[1:5]
'onan'
Gördüğünüz üzere index konusu son derece basit, kullanımı geniş ve işe yarar.
Şimdi size metot diye adlandırılan, her veri tipi için özel olan bir yapıdan bahsedeceğim. Metotları uzun uzadıya kod yazmamak için kullanmanın yanı sıra kodumuzu süslemek için de kullanırız. Metot çeşitleri ve kaç metot olduğu dir() fonksiyonu aracılığıyla öğrenilebilir.
>>> dir("")
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
Bu çıktıda bizi ilgilendiren metotlar _ ile başlamayan metotlardır. Tek tek inceleyelim ve ne işe yaradıklarını, nerede kullanabileceğimizi öğrenelim.
Upper Metodu
Upper metodunun kullanım amacı bir karakter dizisindeki bütün harfleri büyük yazmaktır.
>>> a.upper()
'DONANIM'
Lower Metodu
Upper metodunun yaptığı işin tam aksini yapar yani karakter dizisinin bütün karakterlerini küçük yapar.
>>> a.upper().lower()
'donanim'
Üstte bulunan kodda önce “donanım” karakter dizisini upper metodu ile “DONANIM”a çeviriyoruz ardından lower metodu ile tekrar eski haline getiriyoruz.
Swapcase Metodu
Swapcase metodunun yaptığı iş diğer metotlarda da olduğu gibi içerisindeki bir kelimeden gelir. swap kelimesi değiştirmek anlamına gelir. Artık swapcase metodunun ne yaptığını tahmin etmek zor olmasa gerek. Karakter dizisi ile kullanıldığında dizinin karakterlerinden büyük olanları küçük, küçük olanları büyük hale getirir.
>>> a="DonanNIm"
>>> a.swapcase()
'dONANniM'
Title Metodu
Title metodu karakter dizilerinde boşluklardan sonra gelen karakterleri ve dizinin ilk karakterinin baş harflerini büyük harf yapar.
>>> a = "merhaba dünya"
>>> a.title()
'Merhaba Dünya'
Capitalize Metodu
Karakter dizisinin ilk harfini büyük yapar.
>>> a="donanım".capitalize()
>>> a
'Donanım'
Center Metodu
En sevdiğim metotlardan birisi. Karakter dizisinin sağına ve soluna, karakter dizisinin boyutunu fonksiyona verilen sayıya eşitleyene kadar boşluk karakteri ekler. iki parametre alır. İlk parametresi sayıdır ve yazılması zorunludur. Diğer parametresi karakter dizisinin sağını ve solunu neyle dolduracağınızı belirtmek için kullanılır. İkinci parametreyi center metodu içerisinde kullanmazsak center metodu boşluk karakteri ile çalışır. Yani center metodunun default’u boşluk karakteridir.
>>> a = "donanım"
>>> a.center(13)
' donanım '
>>> a.center(13, "*")
'***donanım***'
Ljust ve Rjust Metodu
ljust metodu: karakter dizisinin boyutunu, sağına boşluk koyarak ve sola yaslayarak belirtilen boyuta ayarlar.
rjust metodu: karakter dizisinin boyutunu ,soluna boşluk koyarak ve sola yaslayarak belirtilen boyuta ayarlar.
>>> username = "kullanıcı adı"
>>> username.ljust(20,".")
'kullanıcı adı.......'
>>> username.rjust(20, ".")
'.......kullanıcı adı'
İki metodunda 2 parametresi vardır. Ancak ikincisi yine isteğe bağlı bir parametredir ve dafault’u boşluk karakteridir.
>>> username.ljust(20)
'kullanıcı adı '
Replace Metodu
En çok kullanılan metotlardan birisidir. Yaptığı iş karakterleri değiştirmektir. Karakter dizisi içerisinde kendisine verilen 1. parametre ile aynı olan karakterleri 2. parametre ile değiştirir.
>>> dizi = "Python, Bir Başka Dünya"
>>> dizi.replace("a", "A")
'Python, Bir BAşkA DünyA'
Kullanım amaçlarından birisi de karakter dizisinden istediğiniz karakteri silmektir.
>>> dizi
'Python, Bir Başka Dünya'
>>> dizi.replace("a", "")
'Python, Bir Bşk Düny'
Endswith ve Startswith Metotları
Startswith metodu karakter dizisinin kendisine verilen karakter dizisi ile başlayıp başlamadığını kontrol eder.
>>> dizi.startswith("Python")
True
>>> dizi.startswith("python")
False
Endswith metodu karakter dizisinin kendisine verilen karakter dizisi ile bitip bilmediğini kontrol eder. Şimdi hayal edin, uzantısını bildiğiniz ancak ismini bilmediğiniz bir dosya var. Endswith metodu ile uzantı araması yaparak belli uzantıya sahip dosyaları sıralayabiliriz.
>>> dosya_ismi = "noname.docx"
>>> dosya_ismi.endswith(".docx")
True
Count Metodu
Karakter dizisinde belirtilen karakterden kaç adet olduğunu döndürür.
>>> karakter_dizisi = "Bugün işleyeceğimiz konu karakter dizileri ve karakter dizisi metotları. Karakter dizilerini tam anlamıyla kavramış olmak çok önemli çünkü gerek kullanıcıdan veri aldığımızda verinin hafızada nasıl tutulacağı gerekse aldığımız veride ne çeşit oynamaları nasıl yapacağımız tamamen metot bilgimize bağlı olacak. Ufak ufak başlamak için etkileşimli kabuğu açalım."
>>> karakter_dizisi.count("a")
45
Find Metodu
Karakter dizisinin içerisinde parametre olarak verilen karakterin yerini verir. İlk bulduğu karakterin yerini döndürür. Eğer karakteri bulamazsa -1 döndürür.
>>> degisken = “donanimplus”
>>> degisken.find(“n”)
2
Karakter dizisinde istenilen noktalar arası aramada yapılabilir.
degisken.find(“Aranacak_Karakter”,”Başlangıç değeri”,”Bitiş değeri”)
>>> degisken = “donanimplus.com”
>>> degisken.find(“.”, 5, 12)
11
İndex Metodu
Karakter dizisinin içerisinde belirlenen bir karakterin yerini verir. İlk bulduğu karakterin yerini döndürür. Eğer karakteri bulamazsa Hata Mesajı döndürür.
>>> karakter_dizisi
'Bugün isleyeceğimiz konu karakter dizileri ve karakter dizisi metotları. Karakter dizilerini tam anlamıyla kavramış olmak çok önemli çünkü gerek kullanıcıdan veri aldığımızda verinin hafızada nasıl tutulacağı gerekse aldığımız veride ne çeşit oynamaları nasıl yapacağımız tamamen metot bilgimize bağlı olacak. Ufak ufak başlamak için etkileşimli kabuğu açalım.'
>>> karakter_dizisi.index("m")
16
Partition Metodu
Karakter dizisini belirtilen karaktere göre üç parçaya ayırır ve liste olarak döndürür. İsterseniz veri tipini type() fonksiyonu ile siz de kontrol edebilirsiniz.
>>> a = "Merhaba Python"
>>> a.partition("P")
('Merhaba ', 'P', 'ython')
Splitlines Metodu
Karakter dizisini satır kesme işaretinden (\n) bölerek liste öğeleri haline getirir.
>>> karakter_dizisi
'Bugün işleyeceğimiz konu karakter dizileri ve karakter\n dizisi metotları. Karakter dizilerini tam anlamıyla kavramış olmak çok önemli çünkü gerek\n kullanıcıdan veri aldığımızda verinin hafızada nasıl tutulacağı gerekse aldığımız veride ne çeşit oynamaları nasıl yapacağımız tamamen metot bilgimize bağlı olacak.\n Ufak ufak başlamak için etkileşimli kabuğu açalım.'
>>> karakter_dizisi.splitlines()
['Bugün işleyeceğimiz konu karakter dizileri ve karakter', ' dizisi metotları. Karakter dizilerini tam anlamıyla kavramış olmak çok önemli çünkü gerek', ' kullanıcıdan veri aldığımızda verinin hafızada nasıl tutulacağı gerekse aldığımız veride ne çeşit oynamaları nasıl yapacağımız tamamen metot bilgimize bağlı olacak.', ' Ufak ufak başlamak için etkileşimli kabuğu açalım.']
Splitlines metodu da bize liste döndürür.
Hemen hemen bütün karakter dizisi metotlarını görmüş olduk. Bir sonraki derste if-elif-else yapısını ve script yazmayı öğreneceğiz.
Yorum Yap