Python String Metotları

Çok uzun zamandır Google Search Console verilerinde sıklıkla karşıma çıkan kelimelerden biri Python find kullanımı sorgusu. Bu konuya dair en yakın içeriğim komut satırı aracılığı ile kullanabileceğimiz find komutu idi. Konuya dair detaylar için find Komutu ve Kullanımı başlıklı yazıma göz atabilirsiniz.

AA

Daha Python ile ilgilenmeye başlamadan önce bu aramalarda sorgularda sitenin listeleniyor olması ancak gelen kullanıcıların esasında alakasız bir içerikle karşılaşıyor olması pek hoş değil. Neticede, daha önce de bahsettiğim üzere bir süredir Python programlama dili ile ilgileniyorum. Bu vesile ile de, artık ilgili aramaya cevaben string metotlarına değinebilmem mümkün.

Python ve String Metotları

String fonksiyonları ile ilgili örnek kod paylaşımları içerisinde çeşitli kullanımlar mevcut1 2. Bu sebeple, Python ile ilgili daha önce yayınladığım ve ilerleyen zaman içerisinde yayınlayacağım yazılara da ayrıca göz atmanızı tavsiye ederim. Bu yazıları Python kategorisi altında görebilirsiniz.

Ek olarak, codewars web sitesine üye olmanızı ve size sunulan kata‘lar aracılığı ile pratik yapmanızı da öneririm3.

O halde, find metotu ile başlayalım.

Find ve Rfind

find metotu verilen ifade içerisinde arama işlemi gerçekleştirir. Eğer belirtilen ifade ile ilgili bir eşleşme olursa eşleşmenin başlangıç indeksini döndürür. Bir eşleşme olmazsa -1 döner. Büyük-küçük harf duyarlıdır (case-sensetive).

Aşağıdaki gibi bir metin parçacığımız olsun4;

txt = '''Yaşamak görevdir bu yangın yerinde
Yaşamak, insan kalarak'''

print(txt.find('Yaşamak')) # 0
print(txt.find('Sivas')) # -1
print(txt.find('yangın')) # 20
print(txt.find('Yangın')) # -1

firstLine = txt[:txt.find('\n')]
print(firstLine)

getPart = txt[txt.find('bu'):txt.find('\n')]
print(getPart)

Metot sub dışında opsiyonel olarak start ve end olmak üzere 3 parametre alabilir; str[start:end] şeklinde düşünülebilir. Aynı metin üzerinden başlangıç ve bitiş sınırları belirterek tekrar ilgili metotu kullanalım.

print(txt.find('Yaşamak', 1)) # 35
# Çünkü, 'aşamak' ile eşleşmeyecektir.
# bkz. txt[1:]

print(txt.find('Yaşamak', 8)) # 35
# bkz. txt[8:]

print(txt.find('Yaşamak', 36, 50)) # -1
# bkz. txt[36:50]

print(txt.find('insan', 36, 50)) # 44
# bkz. txt[36:50]

Görüldüğü üzere bir başlangıç ve/veya bitiş sınırı belirtilmediğinde ilk eşleşme değeri dönmekte. Ancak, bir başlangıç belirtildiğinde, bu değer öncesindeki olası eşleşmeler gözardı edilmekte. Aynı şekilde, bir bitiş değeri belirtilmiş ise, bu değer sonrasındaki olası eşleşmeler de gözardı edilirler.

find ve rfind metotlarını karar yapılarında da kullanabilmekteyiz.

if txt.find('Suçlular') == -1:
  print('Bulunamadı!')
else:
  print('Bulundu!')

rfind için de find üzerine belirtilen tüm durumlar geçerli. Ancak, rfind metotunda ise verilen değerin sonundan başına doğru arama işlemi gerçekleştirilir.

txt = '''Yaşamak görevdir bu yangın yerinde
Yaşamak, insan kalarak'''

print(txt.rfind('Yaşamak')) # 35
print(txt.rfind('Sivas')) # -1
print(txt.rfind('yangın')) # 20
print(txt.rfind('Yangın')) # -1

Index ve Rindex

Belitilen string, list veya tuple değer(ler)ini bir string içerisinde arar ve bulunması durumunda ilk eşleşmenin başlangıç indeks değerini döndürür. Bu açıdan find ile benzeşebilir. Ancak, index bir eşleşme olmaması durumunda hata (exception) döndürür. Ek olarak, index şart (condition) yapılarında kullanılamaz.

print(txt.index('Yaşamak'))

print(txt.index('Yaşamak', 1))
print(txt.find('Yaşamak', 1))

print(txt.index('yangın'))
print(txt.find('yangın'))

lst = ['yaşamak','yangın','yerinde']
print(lst.index('yangın'))

tpl = (('yaşamak','yangın'),('yerinde'))
print(tpl.index('yerinde'))

rindex metotu verilen string ifade içerisinde sondan başa doğru arar ve bulunması durumunda ilk eşleşmenin indeks değerini döndürür. index metotunda olduğu gibi aramanın yapılacağı alana dair bir başlangıç ve son sınırı verilebilir.

print('yaşamak'.rindex('a'))
print('yaşamak'.rindex('a', 1, 5))

Center

Verilen string içeriğini belirtilen genişliğe uyarlar. Genişlik için bir tanım (fillchar) verilmesi durumunda ilgili ifade, bir ifade belirtilmemişse ön tanımlı olarak boşluk genişliğe uyacak kadar tekrarlanır. Eğer verilen genişlik değeri string uzunluğundan küçük ise işlem gerçekleştirilmez ve string ifadesi olduğu gibi döndürülür.

Eğer belirtilen uzunluk değeri string uzunluğundan bir fazla ise, ekleme sağa yapılır.

print(getPart.center(50))
print(getPart.center(50, '='))
print(getPart.center(10, '='))
print(getPart.center(18, '='))

Ljust ve Rjust

ljust metotu, string bir ifade solda olacak şekilde, belirtilen uzunluk değeri kadar, verilen değer ile doldudur. rjust metotunda ise verilen string ifade sağda yer alır.

Daha önce bahsi geçen center metotu da benzer bir şekilde, verilen string değer ortada olacak şekilde işlem gerçekleştirmekeydi.

print('Yaşamak, insan kalarak'.ljust(50, '='))
print('Yaşamak, insan kalarak'.rjust(50, '='))

Count

Belirtilen ifadenin verilen string içerisinde kaç defa geçtiğini değer olarak döndürür. Büyük-küçük harfe duyarlıdır (case-sensetive). Bir eşleşme olmaz ise 0 değeri dönecektir. Opsiyonel olarak taramanın yapılacağı başlangıç ve bitiş değerleri de belitilebilir. Bu durumda, belirtilen sınırlar içerisindeki ifade için işlem gerçekleştirilecektir.

print(txt.count('Yaşamak')) # 2
print(txt.count('Yaşamak', txt.find('\n'))) # 1
print(txt.count('Yaşamak', 0, txt.find('\n'))) # 1
print(txt.count('yaşamak')) # 0
print(txt.count('ak', 0, 200)) # 3
print(txt.count('ak', txt.find('\n'), 200)) # 2

Capitalize

Verilen değerin ilk harfi büyük olacak şekilde karakterleri düzenler. Eğer string içerisinde başka büyük harfler varsa, sadece ilk harf büyük kalacak şekilde diğerleri küçük harf (lower-case) olarak güncellenir.

print(getPart.capitalize())
print('Bu Yangın Yerinde'.capitalize())

Title

Verilen değerdeki tüm kelimelerin ilk harflerini büyük hale getirir. Eğer string içerisinde başka büyük harf karakterler var ise bu karakterler küçük harf olarak düzenlenir.

print(getPart.title())
print('Bu Yangın Yerinde'.title())

Casefold

lower metotuna benzer olsa da kapsamı daha geniştir.

print(firstLine.casefold())
print(firstLine.lower())

csfld = 'außen'
print(csfld.casefold())
print(csfld.lower())

Lower

Verilen string değer içerisindeki tüm karakterleri küçük harfe (lower-case) dönüştürür. Semboller ve sayılar metot tarafından gözardı edilir.

print('Yaşamak, insan kalarak'.lower())
print('SİVAS KATLİAMI'.lower())
print('STÅLE'.lower())

Upper

Verilen string değer içerisindeki tüm karakterleri büyük harfe (upper-case) dönüştürür. Semboller ve sayılar metot tarafından gözardı edilir.

print('Yaşamak, insan kalarak'.upper())
print('SİVAS KATLİAMI'.upper())
print('Ståle'.upper())
print('außen'.upper())

Encode

Verilen string ifade encode edilir. Ön tanımlı olarak utf-8 değerine göre işlem gerçekleştirilir.

print(txt.encode())
print(txt.encode(encoding="ascii",errors="backslashreplace"))
print(txt.encode(encoding="ascii",errors="ignore"))
print(txt.encode(encoding="ascii",errors="namereplace"))
print(txt.encode(encoding="ascii",errors="replace"))
print(txt.encode(encoding="ascii",errors="xmlcharrefreplace"))

ncode = 'außen'
print(csfld.encode())

ncode = 'Ståle'
print(ncode.encode(encoding="ascii",errors="backslashreplace"))
print(ncode.encode(encoding="ascii",errors="ignore"))
print(ncode.encode(encoding="ascii",errors="namereplace"))
print(ncode.encode(encoding="ascii",errors="replace"))
print(ncode.encode(encoding="ascii",errors="xmlcharrefreplace"))

Startswith

String ya da tuple olarak verilen ifadeleri belirilen string ifadesinde ve eğer bir sınır belirtilmiş ise bu sınır değerler arasında arar. Bir eşleşme olması durumunda True, eşleşme olmaması durumunda ise False değeri döner. Büyük-küçük harf duyarlıdır.

print(txt.startswith('\n')) # False

print(firstLine.startswith('Yaşamak')) # True
print(firstLine.startswith('Y')) # True

print(getPart.startswith('b'), 0, 1) # True - Case-sensetive - bkz. getPart[0:1] 
print(getPart.startswith('B'), 0, 1) # False - Case-sensetive - bkz. getPart[0:1]

print(firstLine.startswith(('insan','yerinde'))) # False - tuple içeriği ile bir eşleşme var mı?
print(firstLine.startswith(('yangın','kalarak'))) # False - tuple içeriği ile bir eşleşme var mı?

Endswith

String ya da tuple olarak verilen ifadeleri belirilen string ifadesi içerisinin sonunda ve eğer bir sınır belirtilmiş ise bu sınırlar içerisinde arar. Bir eşleşme olması durumunda True, eşleşme olmaması durumunda ise False değeri döner. Büyük-küçük harf duyarlıdır.

print(txt.endswith('\n')) # False

print(firstLine.endswith('yerinde')) # True
print(firstLine.endswith('e')) # True

print(getPart.endswith('e'), 0, 1) # True - Case-sensetive - bkz. getPart[0:1] 
print(getPart.endswith('E'), 0, 1) # False - Case-sensetive - bkz. getPart[0:1]

print(firstLine.endswith(('insan','yerinde'))) # True - tuple içeriği ile bir eşleşme var mı?
print(firstLine.endswith(('yangın','kalarak'))) # False - tuple içeriği ile bir eşleşme var mı?

Replace

3 parametre alır. 1. ve 2. parametreler zorunludur. 1. parametre bulunacak değeri, 2. parametre ise bulunan değerin değişirileceği değeri ifade eder. Opsiyonel olarak 3. parametre ilgili değişikliğin kaç defa gerçekleştirileceği ile ilgili sınırlandıra görevi görür. Eğer bir değer verilmezse tüm eşleşmeler değiştirilir.

Değişiklik olsun olmasın metot yeni bir string olarak değer döndürür.

print(txt.replace('a', 'A'))

tabbedStr = getPart.replace(' ', '\t')
print(tabbedStr) # 'bu  yangın  yerinde'
multiTabbedStr = getPart.replace(' ', '\t\t\t\t\t')
print(multiTabbedStr) # 'bu        yangın        yerinde'

print(getPart.replace('e','i'))
print(getPart.replace('e','i',1))
print(getPart.replace('e','i',2))

Expandtabs

Tab (\t) ifadelerini boşluk olarak düzenler. Eğer bir sayı belirtilmiş ise tab boyutu belirtilen değer kadar boşluk (whitespace) haline getirilir. Ön tanımlı olarak tab boyutu 8 olarak belirtilmiştir.

print(tabbedStr.expandtabs(0)) # 'buyangınyerinde'
print(tabbedStr.expandtabs(1)) # 'bu yangın yerinde'
print(tabbedStr.expandtabs(10)) # 'bu        yangın    yerinde'

print(multiTabbedStr.expandtabs(0)) # 'buyangınyerinde'
print(multiTabbedStr.expandtabs(1)) # 'bu     yangın     yerinde'
print(multiTabbedStr.expandtabs(10)) # 'bu                                                yangın                                            yerinde'

print('bu\t'.expandtabs(), 'yangın yerinde') # 'bu       yangın yerinde'
print('bu\t'.expandtabs(4), 'yangın yerinde') # 'bu   yangın yerinde'
print('bu yangın\t'.expandtabs(), 'yerinde') # 'bu yangın        yerinde'
print('bu yangın\t'.expandtabs(4), 'yerinde') # 'bu yangın    yerinde'
print('\tyangın\t'.expandtabs(), 'yerinde') # '        yangın   yerinde'
print('\tyangın\t'.expandtabs(4), 'yerinde') # '    yangın   yerinde'

Format

Bir karakter dizisini biçimlendirebilmek istediğimizde, ilgili alan(lar) için yer tutucu olarak % kullanılabilmekte.

print('Yaşamak %s bu %s yerinde' % ('görevdir', 'yangın'))
print('Yaşamak %s bu yangın yerinde' % ('görevdir').center(20, '*'))

vl = 'görevdir'
print('Yaşamak %s bu yangın yerinde' % (vl))

# s: karakter dizilerini
# d: sayıları
# i: tam sayıları
# o: sekizli (octal) düzendeki sayılaır
# x ve X: onaltılı (hexadecimal) düzendeki sayıları 
# f: ondalıklı sayı (float) ifadelerini
# c: tek bir karakter değerini ifade eder

Ancak, tek seçenek bu değil. format metotu sayesinde daha esnek bir kullanım gerçekleştirilebilmekte. format içerisideki değerler tıpkı % kullanımında olduğu gibi sıralı olarak yer tutuculara ({}) atanır. Ancak, bu sıralama sıfırdan başlayarak sayısal değerler ({0}, {1}, vb.) ile düzenlenebilir.

print('Yaşamak {} bu {} yerinde'.format('görevdir', 'yangın'))
print('Yaşamak {1} bu {0} yerinde'.format('yangın', 'görevdir'))
print('Yaşamak {0[0]} bu {0[1]} yerinde'.format(['yangın', 'görevdir']))
print('Yaşamak {} bu yangın yerinde'.format('görevdir'.center(20, '*')))
print('19{} - Sivas Katliamı'.format(9*10+3))

vl = 'görevdir'
print('Yaşamak {} bu yangın yerinde'.format(vl))
print('Yaşamak {vl2} bu yangın yerinde'.format(vl2='görevdir'))

Is... Değer Kontrol Metotları

Aşağıdaki metotlar verilen string ifadenin metot olarak belirtilen şartı sağlayıp sağlamadığını kontrol eder. İlgili şartın sağlanması durumunda True, aksi durumda False ifadesi döner.

Isalnum

Verilen ifadenin alfanümerik ([a-zA-Z0-9]) olup olmadığını kontrol eder. İlgili şart karşılanıyor ise True, aksi durumda ise False değeri döner.

print(txt.isalnum())
print('1993'.isalnum())
print('Sivas'.isalnum())
print('außen'.isalnum())
print('٢'.isdecimal())

Isalpha

Verilen ifadenin alfabetik ([a-zA-Z]) olup olmadığını kontrol eder. İlgili şart sağlanmasına bağlı olarak True ya da False değeri döner.

print(txt.isalpha())
print('1993'.isalpha())
print('Sivas'.isalpha())
print('außen'.isalpha())
print('۶'.isalpha())

Isascii

Verilen ifadenin ascii karakterlerden oluşup oluşmadığını kontrol eder.

print(txt.isascii())
print('1993'.isascii())
print('-1'.isascii())
print('10.0'.isascii())
print('/u00e2'.isascii())
print('ß'.isascii())
print('۶'.isascii())

Isdecimal

Unicode decimal karakterlerde True değeri döndürür.

print(txt.isdecimal())
print('1993'.isdecimal())
print('-1'.isdecimal())
print('10.0'.isdecimal())
print('10,0'.isdecimal())
print('٢'.isdecimal())

Isdigit

Verilen ifade içerisindeki tüm karakterler rakamsa veya bir rakamın Unicode karakter karşılığı ise True değeri döner.

print(txt.isdigit())
print('1993'.isdigit())
print('-1'.isdigit())
print('10.0'.isdigit())
print('10,0'.isdigit())
print('٢'.isdecimal())

Isnumeric

Verilen ifade içerisindeki tüm karakterler nümerik ise True değeri döner.

print(txt.isnumeric())
print('1993'.isnumeric())
print('-1'.isnumeric())
print('10.0'.isnumeric())
print('10,0'.isnumeric())
print('۶'.isnumeric())

Isnumeric - Isdecimal ve Isdigit Arasındaki Farklılık

String Değer isdecimal() isdigit() isnumeric()
'123' True True True
'$123' False False False
'123.50' False False False
'123a' False False False
'¾' False False True
'\u0034' True True True

Isidentifier

Vrilen değerin doğru bir tanımlayıcı (identifier) olup olmadığını kontrol eder. Tanımlayıcılar rakamlarla başlayamazlar, ancak bir alfabe veya alt çizgi ile başlayabilirler. Geçerli bir tanımlayıcı dizesi yalnızca küçük veya büyük harfler, alt çizgi, 0'dan 9'a kadar rakamlar içerebilir.

print(txt.isidentifier())
print('1993'.isidentifier())
print('_Sivas'.isidentifier())
print('Sivas_Katliamı'.isidentifier())
print('Sivas Katliamı'.isidentifier())
print('1993_Sivas_Katliamı'.isidentifier())
print('Sivas_Katliamı_1993'.isidentifier())
print('_۶'.isidentifier())
print('۶_'.isidentifier())

Islower

Verilen ifadedeki tüm karakterlerin küçük harf olup olmadığını kontrol eder. Şart sağlanıyorsa True değeri döner.

print(txt.islower())
print('sivas katliamı'.islower())
print('1993 sivas katliamı'.islower())
print('Sivas katliamı'.islower())

Isprintable

Verilen değer içerisindeki tüm karakterler yazdırılabilir (printable) ise True, değil ise False değeri döner. \n, \l, \r, \t, \x16 ve \xlf gibi karakterler yazdırılamaz (non-printable) karakterler olarak ifade edilirler. Ek olarak '''...''' kullanımında da False değeri dönecektir.

print(txt.isprintable())
print(firstLine.isprintable())
print(getPart.isprintable())
print('\r'.isprintable())
print('\u2029'.isprintable())

Isspace

Verilen değer bir ya da birkaç boşluktan (whitespace) oluşuyor ise True, diğer durumlarda ise False döner.

print(txt.isspace())
print(firstLine.isspace())
print(getPart.isspace())
print(' '.isspace())
print('     '.isspace())
print('\t\t'.isspace())
print('\n\r'.isspace())
print('''
'''.isspace())

Istitle

Verilen string ifade ya da ifadelerin ilk karakter(ler)inin büyük ve diğer karakterlerinin küçük olmasına bağlı olarak True ya da False değeri döner.

print(txt.istitle())
print(firstLine.istitle())
print(getPart.istitle())
print('Sivas Katliamı'.istitle())
print('1993 - Sivas Katliamı'.istitle())
print('SİVAS KATLİAMI'.istitle())

Isupper

Verilen değer içerisindeki tüm karakterlerin büyük (upper-case) olması durumunda True, aksi durumda False değeri döner. Semboller ve sayılar metotun çalışma biçimini etkilemez.

print(txt.isupper())
print(firstLine.isupper())
print(getPart.isupper())
print('Sivas Katliamı'.isupper())
print('1993 - Sivas Katliamı'.isupper())
print('SİVAS KATLİAMI'.isupper())
print('1993 - SİVAS KATLİAMI'.isupper())

Join

Verilen değer(ler)i iteratif bir şekilde ve belirtilen ara değer ile birlikte yeni bir string olarak döndürür. Tuple, list veya dictionary olarak verilen değerlerin string'lerden oluşması gerekir. Aksi durumda, TypeError hatası döner.

txt = ['Yaşamak', 'görevdir', 'bu', 'yangın', 'yerinde']
print(' '.join(txt))
print('\t'.join(txt))

print('*'.join('1993'))

tpl = ('Sivas')
print('.'.join(tpl))
print('.'.join(tpl.upper()))

# tpl = (1993)
# print('.'.join(tpl))

dctr = {'Sivas', 'Katliamı', '1993'}
print(','.join(dctr))

Strip, Lstrip ve Rstrip

strip metotu, verilen değerin her iki yanında ön tanımlı olarak boşluk veya belirtilmişse diğer karakerlerin silinmesini sağlar.

print('----------Yaşamak'.strip())
print('----------Yaşamak'.strip('-'))
print('         Yaşamak'.strip())
print('         Yaşamak         '.strip())
print('         Yaşamak'.strip('-'))
print('----------Yaşamak----------'.strip('-'))
print('----------Yaşamak------1993----'.strip('-'))

lstrip, verilen değerin başlangıcından (sol) itibaren silme işlemi gerçekleştirir. Bir ifade belirtilmemişse boşluk(lar) (whitespace), ifade belirtilmiş ise ilgili ifade silinir. rstrip ise ilgili işlemi verilen değerin sağından itibaren gerçekleştirir.

print('----------Yaşamak'.lstrip())
print('----------Yaşamak'.lstrip('-'))
print('         Yaşamak'.lstrip())
print('         Yaşamak'.lstrip('-'))
print('----------Yaşamak----------'.lstrip('-'))
print('----------Yaşamak------1993----'.lstrip('-'))

print('Yaşamak----------'.rstrip())
print('Yaşamak----------'.rstrip('-'))
print('         Yaşamak         '.rstrip())
print('Yaşamak         '.strip('-'))
print('----------Yaşamak----------'.rstrip('-'))
print('----------Yaşamak------1993----'.rstrip('-'))

Maketrans ve Translate

Maketrans ve translate metotları genelde birlikte kullanılan metotlar. Maketrans 3 parametre alır. Tek bir argüman olacaksa bunun dictionary olması gerekir. Eğer 2 argüman kullanılacaksa ikisinin de benzer uzunlukta string'ler olması gerekir. 3. argüman ise orjinal değer içerisinden hangi karakterin silineceğini belirtir, bir değer verilmez ise ön tanımlı olarak None değerini alacaktır.

print('yangın'.maketrans('y','s','ı'))

Dönen dictionary içeriğindeki key eski, value ise map'lenen yeni chr değerini temsil eder.

print(chr(121), chr(115), sep = 'to'.center(4))

translate ise table olarak değer alır. Verilen key ve value değerlerini eşleştirir ve yeni bir string olarak döndürür.

str1 = 'yangın'
strTr = str1.maketrans('yn','sl','ı')
print(strTr)
print(str1.translate(strTr))

Partition ve Rpartition

Verilen değer içerisinde parametre olarak belirilen ifadeyi arar ve bu ifadeyi ilk eşleşme için ayraç olarak kullanır. Elde edilen değeler 3 parçadan oluşan bir tuple olarak döndürülür. Bu parçalar seperatör tanımı öncesi, seperatör tanımı ve tanım sonrası alanlardan oluşur. Parametre tanımı zorunludur ve boş değer ('' gibi) verilemez.

print(getPart.partition('yangın'))
print(firstLine.partition(' '))
print(firstLine.partition('bu'))

rpartion ise partion metotundan farklı olarak, parçalara ayırma işlemini sondan başa doğru gerçekleştirir.

print(getPart.rpartition('yangın'))
print(firstLine.rpartition(' '))
print(firstLine.rpartition('bu'))

Split ve Rsplit

split metotu 2 parametre alır. Verilen değer içerisinde arama yapar ve 1. parametre eşleşmelerini parçalayarak liste halinde döndürür. 1. paametre ön tanımlı olarak boşluk (whitespace) değerini alır. Parametre değeri olarak boşluğun yanı sıra \t, \n, gibi karakterler de kullanılabilir. 2. parametre (maxsplit) ise parçalama işlemi için yapılacak aramanın sınırlandırılmasını sağlar.

print(firstLine.split())
print(getPart.split('yangın'))
print(getPart.split(' yangın '))
print(firstLine.split(' ', 2))

rsplit metotu split metotuna benzer şekilde davranır. Temel farklılık, 2. parametre içerisinde bir sınır belirtilmesi durumunda bu sınırlandırma işleminin sondan başa doğru gerçekleştirilmesidir.

print(firstLine.rsplit())
print(getPart.rsplit('yangın'))
print(getPart.rsplit(' yangın '))
print(firstLine.rsplit(' ', 2))

Splitlines

Verilen değeri satırlara böler. Bu işlem içi \n, \r, \t, \n\r, \v, \f gibi satır sınırlandırıcılarını temel alır. Opsiyonel olarak tek bir parametre (keepends) alır. Ön tanımlı olarak bu parametre False değerine sahiptir. True değerinin verilmesi durumunda satır sonlarındaki sınırlandırıcılar da liste değeri içerisinde yer alır.

print('''Yaşamak görevdir bu yangın yerinde
Yaşamak, insan kalarak'''.splitlines())

print('''Yaşamak görevdir bu yangın yerinde
Yaşamak, insan kalarak'''.splitlines(True))

print('Yaşamak\rinsan\rkalarak'.splitlines())
print('Yaşamak\rinsan\rkalarak'.splitlines(True))

Swapcase

Verilen ifade içerisindeki harflerin durum değişikliklerini gerçekleştirir. Örneğin, küçük harf (lowe-case) karakerler büyük harfe (upper-case) ve büyük harfli karakterler de küçük harfe dönüştürülür ve yeni bir string ifadesi haline getirilir.

print(getPart.swapcase())
print(firstLine.swapcase())
print('2 Temmuz 1993 - Sivas Katliamı'.swapcase())

print('STÅLE'.swapcase())
print('außen'.swapcase())

Zfill

Verilen değerin başına parametre olarak verilen toplam genişlik değerine uygun olarak 0 (sıfır) ekler. Genişlik (width) parametresi zorunludur. Verilen değerin string uzunluğundan küçük ya da eşit olması durumunda string değerin kendisi döner. rjust ile benzeştiği düşünülse de negatif sayılarda iki metotun çıktıları farklılık gösterir.

print('10.0'.zfill(10))
print('10.0'.rjust(10,'0'))

print('$100'.zfill(5))
print('$100'.rjust(5, '0'))

print('-100'.zfill(5))
print('-100'.rjust(5, '0'))

Bu sayfada yer alan metotlara dair örnekleri Colab aracılığı ile görüntüleyebilirsiniz. Farklı konular bağlamında sıklıkla buradaki metotları kullanmak gerektiği için burada yer almayan ancak çözüm olarak ele alınmış farklı kullanım ve özellikler olması durumunda eklemeler yapmaya çalışacağım.