Python Karakter Dizilerinin Metotları

Python Karakter Dizilerinin Metotları

2018, Nov 29    

Karakter dizilerinin metotlarını dir() gömülü fonksiyonunu kullanarak listeleyebiliriz.
dir() fonksiyonu, parametre olarak aldığı nesnenin geçerli özniteliklerinin bir listesini döndürür.

Eğer parametresiz olarak çalıştırılırsa, mevcut alandaki niteliklerin listesini döndürür.Karakter dizilerinin metotlarına şu şekilde ulaşabiliriz: dir(str)
veya dir() fonksiyonuna bir karakter dizisi vererek: dir(“karater”)

dir(str)
['__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']

isalnum() Karakter dizisinin, sadece harflerden ve/veya sayılardan oluşup oluşmadığını sorgular.

"1923Türkiye".isalnum()

>>> True

"1923 Türkiye".isalnum() #boşluk karakterine dikkat

>>> False


isalpha() Karakter dizisinin yanlızca harflerden oluşup oluşmadığını sorgular.

"python".isalpha()

>>> True

"python3".isalpha()

>>> False


isdecimal() Karakter dizisi içindeki sayının ondalık sayı cinsinden olup olmadığını sorgular.

"1923".isdecimal() 

>>> True

"3.14".isdecimal()

>>> False


isdigit() Karakter dizisinin sadece sayılarda oluşup oluşmadığını sorgular. True dönderebilmesi için, sayı değerli karakter dizilersinin bir tam sayıdan oluşması gerekiyor.

"1923".isdigit()

>>> True

"1923.5".isdigit()

>>> False


isidentifier() Karakter dizisi içindeki karakterin bir tanımlayıcı olarak kulanılıp kullanımayacağını sorgular. örneğin fonksiyonlar ve değişkenleri tanımlarken, bunları sayı ile başlatamıyoruz. Yani 1abc şeklinde bir değişken tanımlayamayız. Bunu bir de isidentifier() methoduna soralım, tanımlayabiliyor muyuz diye.

"1abc".isidentifier()

>>> False


islower() Karakter dizisinin tamamen küçük harflerden oluşup oluşmadığını sorgular.

"python".islower()

>>> True


isnumeric() Karakter dizisinin sadece sayılardan oluşup oluşmadığını sorgular.

"2019".isnumeric()

>>> True


isprintable() Karakter dizsin yazdırılmayan bir karakter barındırıp barındırmadığını sorgular. örneğin “\n”, “\t” gibi kaçış dizileri basılamayan (yazılmayan) karakterlerdir.

"\n".isprintable() 

>>> False

"Programlama \t".isprintable() 

>>> False

"python".isprintable() 

>>> True


isspace() Karakter dizisinin sadece boşluk karakterinden oluşup oluşmadığını sorgular.

"  ".isspace()

>>> True

"boşluk".isspace()

>>> False


istitle() Karakter dizisindeki kelimelerin baş harflerinin büyük harf olup olmadığını sorgular. True dönderebilmesi için sorguladığı kelimelerdeki baş haflerinin büyük, geriye kalan diğer harflerin küçük olması gerekiyor.

"Türkiye Cumhuriyeti".istitle()

>>> True

"Türkiye cumhuriyeti".istitle()

>>> False


isupper() Karakter dizisindeki bütün harflerin büyük harf olup olmadığını sorgular.

"PYTHON".isupper() 

>>> True

"Python".isupper()

>>> False


endswith() Karakter dizisinin parametre olarak verilen karakter ile bitip, bitmediğini sorgular.

"python".endswith("n")

>>> True

"python".endswith("z")

>>> False


capitalize() Karakter dizilerinin yalnızca baş harfini büyütür.

"python".capitalize()

>>> ‘Python’

"python turkiye".capitalize()

>>> ‘Python turkiye’


casefold() Karakter dizilerindeki harflerin hepsini küçük harfe çevirir.

"PYTHON".casefold()

>>> ‘python’


center() Karakter dizilerini ortalar. center() methoduna girilen parametre, karakter dizisinin kaç karakterlik bir yer kaplayacağını belirtir.

"python".center(10)

>>> ‘ python ‘ ***

ljust() Karakter dizisini sola hizalar, bu işlemini yaparken karakterin sağına ekleme yaparak karakteri sola yaslar. İki tane parametre alır, ilk parametre toplam karakter uzunluğunu , ikinci parametre ise sağa eklenecek karakteri belirler. Eğer ikinci parametreyi belirmezsek, hizalama işlemini yaparken boşluk karakterini kullanır.

"python".ljust(20, "-")

>>> ‘python————–’

"python".ljust(20)

>>> ‘python ‘


rjust() Karakter dizisini sağa hizalar, bu işlemi yaparken karakterin soluna ekleme yaparak karakteri sağa yaslar. İki tane parametre alır, ilk parametre toplam karakter uzunluğunu , ikinci parametre ise sola eklenecek karakteri belirler. Eğer ikinci parametreyi belirmezsek, hizalama yaparken boşluk karakterini kullanır.

"python".rjust(15, "-")

>>> ‘——— python’

"python".rjust(15)

>>> ‘ python’


strip() Parametresiz olarak kullanıldığında, karakter dizisinin sağında ve solunda bulunan boşluk karakteri ile kaçış dizilerini siler. Parametre olarak bir karakter dizisi alır, girilen parametre karakter dizisinin sağında veya solunda var ise siler.

" python  ".strip()# parametresiz kullanıldığında, sağdaki ve soldaki boşlukları sildi.

>>> ‘python’

"python".strip("p")

>>> ‘ython’


lstrip() Paremetre olarak girilen karakteri, karakter dizisinin sol tarafından kaldırır. Eğer parametresiz olarak kullanılırsa, kaçış dizilerini (\n, \t) ve boşluk karakterini, karakter dizisinin sol tarafından kaldırır.

"python".lstrip("py")

>>> ‘thon’

"       python".lstrip()

>>> ‘python’

"  \n  \t python".lstrip()

>>> ‘python’


rstrip() Paremetre olarak girilen karakteri, karakter dizisinin sağ tarafından kaldırır. Eğer parametresiz olarak kullanılırsa, kaçış dizilerini (\n, \t) ve boşluk karakterini, karakter dizisinin sağ tarafından kaldırır.

"pyth".rstrip("on")

>>> ‘python’

"python   ".rstrip()

>>> ‘python’


count() Karakter dizisi içindeki belli bir karakterin kaç kez geçtiğini sorgular.

"malatya".count("a")

>>> 3


index() Parametre olarak aldığı karakterin, karakter dizisi içinde kaçıncı sırada olduğunu sorgular. Eğer sorguladığımız karakter, karakter dizisinin içinde bulunmuyorsa Python bir hata mesajı gösterir. (ValueError: substring not found)

"Matematik".index("a")

>>> 1

"Matematik".index("A")
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-42-69fe97c2e4a7 in <module>()
----> 1 "Matematik".index("A")

ValueError: substring not found

rindex() Parametre olarak aldığı karakterin, karakter dizisi içinde kaçıncı sırada olduğunu sağdan başlayarak sorgular. Eğer sorguladığımız karakter, karakter dizisinin içinde bulunmuyorsa Python bir hata mesajı gösterir.

"python python".rindex("p")

>>> 7


find() Parametre olarak aldığı karakterin, karakter dizisi içindeki konumunu sorgular. Eğer sorgulanan karakter, karakter dizisinin içinde yok ise -1 değerini verir.

"python".find("t")

>>> 2

"python".find("s")

>>> -1


rfind() Parametre olarak aldığı karakterin, karakter dizisi içindeki konumunu sağdan başlayarak sorgular. Eğer aranan karakter dizinin içinde yok ise -1 değerini dönderir.

"pythonp".rfind("p")

>>> 6


split() Parametresiz olarak kullanıldığında karakter dizisini boşluklardan bölerek, bir listeye ekler. split() Karakter dizisini soldan sağa doğru tarar. Parametresiz olarak kullanılırsa eğer, karakter dizisini boşluklardan böler. İlk parametre ile hangi karakterlerden bölüneceği, ikinci parametre ile kaç kez bölüneceği belirtilir.

"Malatya İnönü".split() #parametresiz kullanım

>>> [‘Malatya’, ‘İnönü’]

"Malatya İnönü Üniversitesi".split(" ", 1) #parametreli kullanım

>>> [‘Malatya’, ‘İnönü Üniversitesi’]


rsplit() Parametresiz olarak kullanıldığında karakter dizisini boşluklardan bölerek, bir listeye ekler. rsplit() Karakter dizisini sağdan sola doğru tarar. İlk parametre ile hangi karakterlerden bölüneceği, ikinci parametre ile ise kaç kez bölüneceği belirtilir.

"Malatya İnönü".rsplit() #parametresiz kullanım

>>> [‘Malatya’, ‘İnönü’]

"Malatya İnönü Üniversitesi".rsplit(" ", 1) #parametreli kullanım

>>> [‘Malatya İnönü’, ‘Üniversitesi’]


splitlines() Karakter dizisini satır başı karakterinden (“ \n”) ayırarak bir listeye ekler.

"Öğretmenler!\nCumhuriyet, fikren, ilmen, fennen, bedenen kuvvetli ve yüksek karakterli muhafızlar ister.\nYeni nesli bu özellik ve kabiliyette yetiştirmek sizin elinizdedir".splitlines()

>>> [‘Öğretmenler!’, ‘Cumhuriyet, fikren, ilmen, fennen, bedenen kuvvetli ve yüksek karakterli muhafızlar ister.’, ‘Yeni nesli bu özellik ve kabiliyette yetiştirmek sizin elinizdedir’]


zfill() Karakter dizisinin önüne sıfır ekleyerek sağa yaslar.

"py".zfill(10)

>>> ‘00000000py’


upper() Karakter dizisindeki bütün harfleri büyütür.

"türkiye".upper()

>>> ‘TÜRKIYE’


lower() Karakter dizisindeki bütün harfleri küçük harflere çevirir.

"PYTHON".lower()

>>> ‘python’


swapcase() Karakter dizisindeki büyük harfleri küçük harflere, küçük harfleri ise büyük harflere çevirir.

"PyThOn".swapcase()

>>> ‘pYtHoN’


title() Karakter dizisindeki bütün kelimelerin baş harflerini büyütür.

"türk dil kurumu".title()

>>> ‘Türk Dil Kurumu’


expandtabs() Karakter dizisi içindeki tab uzunluğunu genişletir.

"Python\tTurkiye".expandtabs(10)

>>> ‘Python Turkiye’


partition() Karakter dizisini, parametre olarak girilen karakterleri ortaya gelecek şekilde alarak üçe böler. Eğer boş karakterler var ise bunları sağ tarafa alır.

"Malatya".partition("al")

>>> (‘M’, ‘al’, ‘atya’)

"python".partition("ta")

>>> (‘Malatya’, ‘’, ‘’)


rpartition() Karakter dizisini, parametre olarak girilen karakterleri ortaya gelecek şekilde alarak üçe böler. Eğer boş karakterler var ise bunları sol tarafa alır.

"python".rpartition("p")

>>> (‘’, ‘p’, ‘ython’)


join() Parametre olarak aldığı sıralı nesneyi (list, tuple) karakter dizisine çevirir.

" ".join(("Mustafa", "Kemal", "Atatürk"))

>>> Mustafa Kemal Atatürk’

"-".join(("Mustafa", "Kemal", "Atatürk"))

>>> ‘Mustafa-Kemal-Atatürk’

Not: Parametre olarak verilen veri tipinin tuttuğu nesneler sadece karakter dizilerinden oluşmalı. Şu şekildeki bir kullanım hata verir.

" ".join((123, "abc"))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-83-f130c6fb494f> in <module>()
----> 1 " ".join((123, "abc"))

TypeError: sequence item 0: expected str instance, int found

Bu hatadan, intager tipindeki değeri, string tipine çevirerek kurtulabiliriz.

" ".join(map(str, (123, "abc")))

>>> ‘123 abc’


count() Parametre olarak aldığı kararkterin, karakter dizisi içinde kaç kez geçtiğini sorgular.

"müdür müdür müdür".count("müdür")

>>> 3

count() Bir, iki veya üç parametreyle kullanılabilir. Bir parametre ile nasıl bir sonuç dödürdüğünü gördük. İkinci parametre ise sorgulamaya hangi sıradan başlayacğını belirtir.

"müdür müdür müdür".count("müdür", 2)

>>> 2

count() Methodunu üç parametrey kullanırsak, ilk parametre sorgulanak karakteri, ikinci parametre sorgulamaya başlanacak sırayı, üçüncü parametre ise sorgulamayı bitirecek sırayı belirtir.

"Türkiye Cumhuriyeti".count("i", 6, 15)

>>> 1


format() Karakter dizisi biçimlendirmek için kullanılır. Prametre olarak verilen veriyi karakterin içinde belirtilen {} bloğunun yerine yazar. Karakter dizisi içinde kaç tane {} işareti varsa, format() metodu da o kadar parametre almalı.

"python {}".format("turkiye")

>>> ‘python turkiye’

"{} {} {} ".format("Malatya", "İnönü", "Üniversitesi")

>>> ‘Malatya İnönü Üniversitesi ‘

a = "Mars"
"Merhaba  {0}".format(a)

>>> ‘Merhaba Mars’

İstersek sıra da belirtebiliriz.

"{1} {0} {2} ".format("Malatya", "İnönü", "Üniversitesi")

>>> ‘İnönü Malatya Üniversitesi ‘

Bir adet parametreyi birden fazla kez kullanabiliriz.

"{0} {0} {1} {0}".format("Malatya", "İnönü")

>>> ‘Malatya Malatya İnönü Malatya’

Parametleri isimlendirerek kullanabiliriz.

"{a} {b} {b} {a}".format(a="inönü", b="böte")

>>> ‘inönü böte böte inönü’

Bazı aritmetik işlemler de yaptırabiliriz. Örneğin onluk bir sayıyı ikili sayı sistemine şu şekilde çevirebiliriz.

"{:b}".format(25)

>>> ‘11001’

float bir sayının, noktadan sonra alınacak basamak sayısını belirtip yuvarlamasını isteyebiliriz. örneğin 3.1415926 sayının noktadan sonra iki basamağını versin.

"{:.2f}".format(3.1415926)

>>> ‘3.14’


format_map() Parametre olarak bir sözlük (dict) verisi alır.

sozluk= {'a':5,'b':10}
print('{a} {b}'.format_map(sozluk))

>>> 5 10

Bu işlemi format metoduyla da yapabiliriz, kullanımı şu şekilde. (Çift yıldız, anahtar kelimesini kullanır, **kwargs)

sozluk= {'a':5,'b':10}
print('{a} {b}'.format(**sozluk))

>>> 5 10


encode() Karakter dizisini parametre olarak aldığı kodlama sistemine göre kodlar. Varsayılan kodlama sistemi “utf-8” dir.

"çelik".encode("cp1252")

>>> b’\xe7elik’