String'ler, programlamada çok önemli bir rol oynar. Python'da string bir veri türüdür. Bir string yardımıyla bir karakteri, kelimeyi, cümleyi veya tam bir metni saklayabilirsiniz. Pythonda, string işlemleri için çeşitli fonksiyonlar/metodlar bulunmaktadır.
String
String, sıfır veya daha fazla karakterden oluşan bir dizidir.Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> a = "" >>> type(a) <class 'str'> >>> a = "abcd" >>> type(a) <class 'str'> >>> a = "12345" >>> type(a) <class 'str'> >>>
Yukarıdaki örneklerde de görüleceği üzere tırnak içindeki her şeyin bir dize haline geldiği sonucuna varabiliriz. Dize değişmez bir veri yapısıdır. Dizenin elemanlarına erişebiliriz fakat bu elemanları değiştiremeyiz.
Dize Elemanlarına Erişim
Program yazarken bazı durumlarda stringimizin bazı elemanlarına erişme ihtiyacı duyabiliriz. Stringin elemanlarına erişim diğer dillerdeki dizi elemanlarına erişim gibidir.
<given string>[<index>]
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str = "PYTHON" >>> str[0] 'P' >>> str[5] 'N' >>> str[-1] 'N' >>> str[-6] 'P' >>>
Dizelerden Belirli Parça Alma
Çoğu zaman, dizenin ilk iki karakteri gibi dizenin belirli bir kısmına ihtiyacınız olabilir. Asıl dize dilimlenerek yeni bir dize elde edilir. Dilimlemede iki nokta üst üste (:) kullanılır.
Given string[start : End: Step]
● Given string : İncelemek istediğiniz dize.
● start : Dizenin başlangıç dizini.
● End : Dizenin son dizini.
● Step : her karakter arasındaki fark.
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str = "PYTHON" >>> str[0:2] 'PY' >>> str[0:5:2] 'PTO' >>> str[5:0:-1] 'NOHTY' >>> str[6::-1] 'NOHTYP' >>> str[::-1] 'NOHTYP' >>> str[:6] 'PYTHON' >>> str[0:10:-1] '' >>>
Dizin bir dizinin uzunluğundan büyükse, dilimlemede yorumlayıcı herhangi bir hata vermez.
String Metodları
Pythonda stringe ait metodları görmek için dir() fonksiyonunu kullanabilirsiniz.Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str = "PYTHON" >>> 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', 'isascii', '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'] >>>
count() Metodu
count() metodu belirli bir dizede belirli bir dizenin yineleme sayısını elde etmek için kullanılır. Başlangıç ve bitiş değerleri belirtilerek dizenin belirli bir aralığı verilebilir.
str.count(substr , start , end)
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str = "python programming" >>> str.count("p") 2 >>> str.count("p",0,6) 1 >>>
find() Metodu
find() metodu, belirli bir dizedeki belirli bir dizeyi bulmak için kullanılır. Sol taraftan başlayarak dizenin bulunduğu konumun indisini döndürür.str.find(given_str, beg=0 end=len(string))
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str = "python programming" >>> str.find("p") 0 >>> str.find("o") 4 >>>
Yaslama Metodları
Pythonda dize yaslamak için 4 metod bulunmaktadır.ljust() Metodu
ljust() metodu, belirtilen dizeyi sol taraftan yaslamak için kullanılır. Dizenin toplam uzunluğu given_length ilk parametresinde tanımlanır. fillchar, dizede kalan boşluğu doldurmak için kullanılır. (varsayılan boşluktur). Kalan alan yalnızca given_length str dizesinin uzunluğundan büyükse vardır.
str.ljust(given_length, fillchar)
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "Erhan".ljust(20,"#") 'Erhan###############' >>> "Erhan".ljust(20) 'Erhan ' >>> "Erhan".ljust(2) 'Erhan' >>> "Erhan".ljust(20,"xxx") Traceback (most recent call last): File "<stdin>", line 1, inTypeError: The fill character must be exactly one character long >>>
rjust() Metodu
rjust() metodu, belirtilen dizeyi sağ taraftan yaslamak için kullanılır.
str.rjust(width[, fillchar])
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "Erhan".rjust(20) ' Erhan' >>> "Erhan".rjust(20,"#") '###############Erhan' >>>
center() Metodu
center() metodu, belirtilen dizeyi ortalamak için kullanılır.
str.center(width[, fillchar])
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "Erhan".center(20) ' Erhan ' >>> "Erhan".center(20,"#") '#######Erhan########' >>>
zfill() Metodu
zfill() metodu, belirtilen dizenin belirtilen uzunluğunu doldurmak için sol tarafı 0'la doldurur.
str.zfill(width)
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "Erhan".zfill(20) '000000000000000Erhan' >>>
lower() Metodu
lower() metodu, belirtilen dizenin tüm harflerini küçük harfe dönüştürür.
str.lower()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "ERHAN".lower() 'erhan' >>>
upper() Metodu
upper() metodu, belirtilen dizenin tüm harflerini büyük harfe dönüştürür.
str.upper()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "erhan".upper() 'ERHAN' >>>
capitalize() Metodu
capitalize() metodu, belirtilen dizenin ilk harfini büyük harfe dönüştürür.
str.capitalize()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "erhan saygılı".capitalize() 'Erhan saygılı' >>>
title() Metodu
title() metodu, belirtilen dizede bulunan tüm kelimelerin ilk harflerini büyük harfe dönüştürür.
str.title()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "erhan saygılı".title() 'Erhan Saygılı' >>>
swapcase() Metodu
swapcase() metodu, belirtilen dizede bulunan büyük harfleri küçük küçük harfleri büyük harfe dönüştürür.
str.swapcase()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "Erhan Saygılı".swapcase() 'eRHAN sAYGILI' >>>
lstrip() Metodu
lstrip() metodu, belirtilen bider değeri dizede soldan kaldırmaya yarar
str.lstrip(“characters to be removed”)
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "Erhan Saygılı".lstrip("Er") 'han Saygılı' >>> >>> "Erhan Saygılı".lstrip("rE") 'han Saygılı' >>>
Belirtilen karakterleri tek tek kontrol eder.Sırası farklı dahi olsa yok etme işlemini gerçekleştrir.
Sağ taraftan bir şey kaldırmak istiyorsanız rstrip () metodunu kullanabilirsiniz. Benzer şekilde, bir seferde her iki taraftan karakterleri kaldırmak istiyorsanız, strip() metodunu kullanabilirsiniz.
replace() Metodu
replace() metodu, belirtilen dize içerisinde değiştirme işlemi yapar.
str.replace(old, new,max)max değer belirtilmezse tüm tekrarları değiştirir.
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "Erhan Saygılı".replace("Er","Ay") 'Ayhan Saygılı' >>>
split() Metodu
split() metodu, belirtilen dize içerisinde belirli bir değere göre bölme işlemi gerçekleşrir.
str.split(delimiter, max)
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> date = "2020-02-20" >>> date.split("-") ['2020', '02', '20'] >>> date.split("-",1) ['2020', '02-20'] >>>
partition() Metodu
partition() metodu, belirtilen dizeyi bölümlemek için kullanılır.
str.partition(“separator”)
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str1 = "what we think we become" >>> str1.partition("we") ('what ', 'we', ' think we become') >>> str1.rpartition("we") ('what we think ', 'we', ' become') >>>
Sağ taraftan bölümleme yapmak için rpartition() metodu kullanılır.
join() Metodu
join() metodu, biz dizinin elemanlarını belirtilen değere göre birleştirerek dize oluşturmak için kullanılır.
str.join(seq)
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str1 = "-" >>> seq = ["Hello","Jarvis", "!"] >>> str1.join(seq) 'Hello-Jarvis-!' >>>
startswith() Metodu
Str dizesi str1 parametresi tarafından belirtilen dizeyle başlıyorsa startswith () yöntemi true değerini döndürür. “Beg” ve “end” parametreleri str dizesini dilimlemek için kullanılır:
str.startswith(str1, beg=0,end=len(string))
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str1 = "Time is money" >>> str1.startswith("Ti") True >>> str1.startswith("is",5,8) True >>>
endswith() Metodu
Dize belirtilen alt dize ile bitiyorsa bu yöntem True değerini döndürür, aksi takdirde False değerini döndürür.
str.endswith(suffix[, start[, end]])
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str1 = "it is not easy to play another man's game" >>> str1.endswith("is") False >>> str1.endswith("is",2,5) True >>>
islower() Metodu
Belirtilen dize yalnızca küçük harf karakterleri içeriyorsa islower () yöntemi true değerini döndürür, aksi takdirde false değerini döndürür.
str.islower()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str1 = "Hellojarvis" >>> str1.islower() False >>> "hellojarvis".islower() True >>>
Yalnızca büyük ve küçük harflerle ilgilidir. Benzer şekilde, isupper() ve istitle() kullanabiliriz.
isdigit() Metodu
Belirtilen dize yalnızca sayısal karakterler içeriyorsa isdigit() yöntemi true değerini döndürür, aksi takdirde false değerini döndürür.
str.isdigit()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "123".isdigit() True >>> "123!@".isdigit() False >>>
isalpha() Metodu
Belirtilen dize yalnızca alfabetik karakterler içeriyorsa isalpha() yöntemi true değerini döndürür, aksi takdirde false değerini döndürür.
str.isalpha()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "123".isalpha() False >>> "Erhan".isalpha() True >>>
isalnum() Metodu
Belirtilen dize alfasayısal karakterler içeriyorsa isalnum() yöntemi true değerini döndürür, aksi takdirde false değerini döndürür.
str.isalnum()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "123Abcxyz".isalnum() True >>> "Erhan@com.tr".isalnum() False >>>
isspace() Metodu
Belirtilen dize sadece boşluklardan oluşuyorsa isspace() yöntemi true değerini döndürür, aksi takdirde false değerini döndürür.
str.isspace()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> " ".isspace() True >>> "Erhan tr".isspace() False >>>
format() Metodu
format() metodu dizeyi daha iyi biçimlendirmek için kullanılır. Bu yöntem, bir dize içindeki konumsal biçimlendirme yoluyla öğeleri birleştirmemize olanak tanır. Yöntem yer tutucu olarak {} süslü parantez kullanır.
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> Str1 = "Student {name} got {marks}" >>> Str1 'Student {name} got {marks}' >>> Str1.format(name= "Mohit", marks= 90) 'Student Mohit got 90'
SQL sorgusunu nasıl yapabileceğimizi görelim:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> "Select * from {table} where id = {num}".format(table= "student", num=3) 'Select * from student where id = 3' >>> "Select * from {0} where id = {1}".format("student", 3) 'Select * from student where id = 3' >>>
format () metodu f-string'e benzer. Bir f-string yapmak için “f” yi önek olarak koyarız. F-dizeleri, python ifadelerini dize değişmezleri düzenine entegre etmek için basit ve kullanışlı bir yol sağlar. Aşağıdaki örneğe bakın.
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> table = "student" >>> num = 4 >>> q = f"Select * from {table} where id = {num}" >>> q 'Select * from student where id = 4' >>>
max() Metodu
max() metodu, ASCII değerine göre str dizesindeki max karakterini döndürür.
str.max()
Örnek:
Microsoft Windows [Version 10.0.14393] (c) 2016 Microsoft Corporation. Tüm hakları saklıdır. C:\Users\Erhan>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> str1 = "Time is money" >>> max(str1) 'y' >>>
min() metodu da ASCII değerine göre str dizesindeki min karakteri döndürür.
Tüm yöntemler yeni bir dize döndürür, orijinal dize dize değişmezliği nedeniyle aynı kalır.
Yorum Gönder
Yorum yaparak daha fazla bilgi paylaşılmasına yardımcı olabilirsiniz.