İçeriğe geç

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 + " " + str2
print(sonuc) # Çıktı: Merhaba Dünya

Bir string içinde belirli bir alt string’in olup olmadığı aşağıdaki şekilde kontrol edilir.

text = "Python programlama"
bulunan = "program" in text
print(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ı: MERHABA
print(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ı: True
print(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ı: Merhaba
print(text.lstrip()) # Sadece baştaki boşlukları kaldırır
print(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ı: Python
print(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 = 25
mesaj = 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 programlama
print(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 = 66
karakter = 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ı: ----Python
text_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 = 0
while 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ırma
list(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 koyma
ters_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.