Python Veri Yapıları - String
Python ile String Manipülasyonu
String, Python’da metin verilerini temsil eden bir veri tipidir. Bir string, tek tırnak (’ ’) veya çift tırnak (” ”) içerisinde yazılarak oluşturulur. String’ler üzerinde çeşitli işlemler yapılabilir; bu makalede, string manipülasyonu için yaygın kullanılan 20 örnek ve döngü ile karakterleri gezmek için 7 farklı yöntem ele alınacaktır.
1. Birleştirme (Concatenation)
İki veya daha fazla string’in birleştirilmesi aşağıdaki şekilde yapılır.
str1 = "Merhaba"str2 = "Dünya"sonuc = str1 + " " + str2print(sonuc) # Çıktı: Merhaba Dünya
2. Alt String Arama (Substring Search)
Bir string içinde belirli bir alt string’in olup olmadığı aşağıdaki şekilde kontrol edilir.
text = "Python programlama"bulunan = "program" in textprint(bulunan) # Çıktı: True
3. Büyük/Küçük Harf Dönüştürme
String’in tamamen büyük veya küçük harflere dönüştürülmesi aşağıdaki gibi yapılır.
text = "Merhaba"print(text.upper()) # Çıktı: MERHABAprint(text.lower()) # Çıktı: merhaba
4. Başlangıç/Bitiş Kontrolü (startswith, endswith)
Bir string’in belirli bir kelimeyle başlayıp başlamadığı veya bitip bitmediği şu şekilde kontrol edilir.
text = "Python programlama"print(text.startswith("Python")) # Çıktı: Trueprint(text.endswith("lama")) # Çıktı: True
5. Parçalama (Splitting)
String’in belirli bir karaktere veya boşluğa göre parçalara ayrılması aşağıdaki şekilde yapılır.
text = "Python,Java,C++"diller = text.split(",")print(diller) # Çıktı: ['Python', 'Java', 'C++']
6. Dizeyi Birleştirme (Joining)
Liste halindeki string’lerin tek bir string halinde birleştirilmesi aşağıdaki gibidir.
diller = ['Python', 'Java', 'C++']birlesmis = ", ".join(diller)print(birlesmis) # Çıktı: Python, Java, C++
7. Karakter Değiştirme (Replacing)
Bir string içinde belirli karakterlerin başka karakterlerle değiştirilmesi şu şekilde yapılır.
text = "Merhaba Dünya"yeni_text = text.replace("Dünya", "Python")print(yeni_text) # Çıktı: Merhaba Python
8. Boşlukları Kırpma (Stripping)
String’in başındaki veya sonundaki boşlukların kaldırılması aşağıdaki gibidir.
text = " Merhaba "print(text.strip()) # Çıktı: Merhabaprint(text.lstrip()) # Sadece baştaki boşlukları kaldırırprint(text.rstrip()) # Sadece sondaki boşlukları kaldırır
9. Dilimleme (Slicing)
String’in belirli bir kısmının seçilmesi şu şekilde yapılır.
text = "Python Programlama"print(text[0:6]) # Çıktı: Pythonprint(text[7:]) # Çıktı: Programlama
10. Formatlama (Formatting)
String’lere değişken yerleştirerek dinamik içerik oluşturma aşağıdaki gibidir.
isim = "Ahmet"yas = 25mesaj = f"{isim} {yas} yaşında."print(mesaj) # Çıktı: Ahmet 25 yaşında.
Elbette, string manipülasyonunda daha fazla örnek ve işlem ekleyebilirim. Karakterleri gezme ve diğer string işlemleriyle ilgili bazı ek örnekler:
11. Karakterleri Gezme (Iterating Over Characters)
Bir string’in karakterlerini tek tek gezmek için for döngüsü kullanabilirsiniz.
text = "Python"for karakter in text: print(karakter)# Çıktı:# P# y# t# h# o# n
12. Karakter Dizini Bulma (Finding Index)
Bir karakterin veya alt string’in dizini (indeksi) bulunabilir.
text = "Merhaba Dünya"index = text.find("Dünya")print(index) # Çıktı: 8
find metodu karakteri bulamazsa -1 döner.
13. Sayma (Counting)
Bir string içinde belirli bir karakterin veya alt string’in kaç kez geçtiğini sayabilirsiniz.
text = "Merhaba Merhaba"sayim = text.count("Merhaba")print(sayim) # Çıktı: 2
14. Baş Harfleri Büyük Yapma (Capitalize, Title)
String’in ilk harfini veya her kelimenin baş harfini büyük yapabilirsiniz.
text = "python programlama"print(text.capitalize()) # Çıktı: Python programlamaprint(text.title()) # Çıktı: Python Programlama
15. String Ters Çevirme (Reversing a String)
String’i ters çevirebilirsiniz.
text = "Python"ters = text[::-1]print(ters) # Çıktı: nohtyP
16. Karakterleri Unicode veya ASCII Koduna Çevirme
ord
fonksiyonu bir karakterin Unicode kodunu verirken, chr fonksiyonu bir sayıyı Unicode karakterine çevirir.
karakter = 'A'ascii_degeri = ord(karakter)print(ascii_degeri) # Çıktı: 65
sayi = 66karakter = chr(sayi)print(karakter) # Çıktı: B
17. String İçinde Karakter Seti Kontrolü (isalpha, isdigit, isalnum)
Bir string’in sadece harflerden, sayılardan veya alfanumerik karakterlerden oluşup oluşmadığını kontrol edebilirsiniz.
text = "Python123"print(text.isalpha()) # Çıktı: False (sadece harf değil)print(text.isdigit()) # Çıktı: False (sadece rakam değil)print(text.isalnum()) # Çıktı: True (harf ve rakamlardan oluşuyor)
18. Doldurma (Padding)
Bir string’in başına veya sonuna belirli bir karakter ekleyerek uzunluğunu sabitleyebilirsiniz.
text = "Python"text_sol = text.ljust(10, '*') # Çıktı: Python****text_sag = text.rjust(10, '-') # Çıktı: ----Pythontext_ortala = text.center(10, '=') # Çıktı: ==Python==print(text_sol, text_sag, text_ortala)
19. İçerik Değiştirme ile Tersine Çevirme
String içinde belirli bir karakter dizisini tersine çevirmek için dilimleme kullanabilirsiniz.
text = "Merhaba Dünya"degistirilen = text.replace("Dünya", "Python"[::-1])print(degistirilen) # Çıktı: Merhaba nohtyP
20. Çoklu Değiştirme (Maketrans ve Translate)
Bir string’in karakterlerini topluca değiştirmek için str.maketrans ve translate yöntemlerini kullanabilirsiniz.
text = "Merhaba Dünya"cevirici = str.maketrans("aeiou", "12345")yeni_text = text.translate(cevirici)print(yeni_text) # Çıktı: M2rh1b1 D5ny1
String’deki Karakterleri Gezmek(Iteration) için Kullanılabilecek Yöntemler:
1. Karakterleri Gezme (Iterating Over Characters)
Bir string’in karakterlerinin tek tek gezilmesi şu şekilde yapılır.
text = "Python"for karakter in text: print(karakter)# Çıktı:# P# y# t# h# o# n
2. While Döngüsü ile Gezme
while
döngüsüyle string’in uzunluğunu kontrol ederek indeks bazlı gezinti şu şekilde yapılır.
text = "Python"i = 0while i < len(text): print(text[i]) i += 1# Çıktı:# P# y# t# h# o# n
3. enumerate
fonksiyonunu kullanarak gezme
enumerate
fonksiyonu, hem karakterin hem de indeksin gezilmesi için kullanılır.
text = "Python"for i, karakter in enumerate(text): print(f"İndeks {i}: {karakter}")# Çıktı:# İndeks 0: P# İndeks 1: y# İndeks 2: t# İndeks 3: h# İndeks 4: o# İndeks 5: n
4. İteratör (Iterator) Kullanarak Karakter Gezme
String’ler iteratörler olarak davranır, bu nedenle iter()
ve next()
ile gezinti şu şekilde yapılır.
text = "Python"it = iter(text)while True: try: karakter = next(it) print(karakter) except StopIteration: break# Çıktı:# P# y# t# h# o# n
5. Lambda ve map
Fonksiyonu ile Gezme
lambda
ve map
fonksiyonlari yardimiyla karakter dizisini gezerken ayni zamanda istediğimiz formata dönüştürebilir, filtreleyebiliriz. Aşağıda map örneği verilmiştir.
text = "Python"# Her karakteri büyük harfe çevirip yazdırmalist(map(lambda x: print(x.upper()), text))# Çıktı:# P# Y# T# H# O# N
6. List Comprehension ile Gezme
Liste ifadeleri (list comprehension) [
ve ]
karakterleri arasına döngü ifadesi konulmasıyla yapılan özel bir işlemdir. Aşağıda ters_karakterlerin bir dizi olduğunu sonradan gelen ifadenin [
ve ]
arasında olmasından anlıyoruz.
text = "Python"# Her karakteri ters sırayla bir listeye koymaters_karakterler = [karakter for karakter in text[::-1]]print(ters_karakterler) # Çıktı: ['n', 'o', 'h', 't', 'y', 'P']
Bu makalede, Python ile karakter dizisi(string manipülasyonu) ve string’de yer alan karakterlerin nasıl gezilebileceğini göstermeye çalıştım. Her bir yöntemin farklı kullanım alanları ve avantajları bulunmaktadır. İhtiyacınıza göre uygun olan yöntemi seçerek string işlemlerinizi gerçekleştirebilirsiniz.